0

私は次のようなコードを持っています:

public Vehicle NewOrUpdate(Vehicle vehicle)
{
        try
        {
            RedisManager.ExecAs<Vehicle>(r =>
            {
                r.Store(vehicle); //save new or update
            });
        }
        catch (Exception ex)
        {
            ErrorMessage = ex.ToString();
            HasError = true;
            throw;
        }
        return vehicle;
}

追加するアイテムの URN を設定するにはどうすればよいですか? オブジェクトに CreateUrn 拡張機能が表示されますが、明示的に設定する方法がわかりません。デフォルトでは、「urn:vehicle:Id」の URN を作成します。「urn:vehicles-{MySpecialId}:Id」のような URN が欲しいのですが、これを制御できますか?

または、これを尋ねる別の方法... 保存するオブジェクトの独自の URN を作成できますか?

Vehicle v = new Vehicle();
v.CreateUrn = "urn:mine";

RedisManager.ExecAs<Vehicle>(r =>
{
   r.Store(v); 
});
4

1 に答える 1

1

どこを見ればよいか分かっていれば、実際にはそれほど難しくないように見えます。必要な壷のリストを作成するだけです。

 string urn = String.Format("urn:dealer:{0}:vehicles", dealer.DealerId);
 var vehicleclient = client.As<Vehicle>();
 var vehicleList = vehicleclient.Lists[urn];
 foreach (var vehicle in dealer.Vehicles)
 {
    vehicleList.Add(vehicle);
 }

アイテムをカスタム リストに追加すると、次を使用してアイテムを呼び出すことができます。

List<Vehicle> returnValue = new List<Vehicle>();
string urn = String.Format("urn:dealer:{0}:vehicles",DealerId);
using (var client = new RedisClient("192.168.42.128", 6379))
{
    returnValue = client.As<Vehicle>().Lists[urn].ToList();
}
于 2014-04-23T20:18:21.660 に答える