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 回答