如何在C#中更新redis列表

时间:2014-03-17 12:00:12

标签: c# redis

我的代码示例是

RedisClient redisClient = new RedisClient("", 6379);
var redisUsers = redisClient.GetTypedClient<User>();
IRedisList<User> OrderCash = redisUsers.Lists["Order_Cash|123|1"];

 var Ocash = new User { OrderI_lngId = 123, OrderI_mnyInvTotal = 44, Item_strID = "Hii", Booking_lngId = 12345, OrderI_strTempTransId = "4", Booking_strId = "TOTAL12345", Item_lngId = 2, ItemVar_intSequence = 1 };


OrderCash.Add(Ocash);

通过这个我试图插入。工作正常。

我可以检索相同密钥的值。现在我需要更新一些值。 我试过这种方式,

OrderCash.Where(o => o.Item_lngId == bsonDoc.TryGetValue("lngItemId", 0).ToLong() && o.ItemVar_intSequence == bsonDoc.TryGetValue("intItemVarSequence", 0).ToInt()).ForEach(objCash => {
                    objCash.OrderI_mnyInvTotal = bsonDoc.TryGetValue("mnyInvTotal", 0).ToFloat();
                    objCash.Item_strID = bsonDoc.TryGetValue("strItemId", "").ToStr();
                    objCash.Booking_lngId = bsonDoc.TryGetValue("lngBookingId", 0).ToLong();
                    objCash.Booking_strId = bsonDoc.TryGetValue("strBookingId", "").ToStr();
                    objCash.OrderI_strTempTransId = bsonDoc.TryGetValue("strTempTransId", "").ToStr();

                });

但是在调试时它没有更新值仍然在 OrderCash 对象中?

我需要更新该密钥中的一些值。

如何实现?

请帮帮我..

1 个答案:

答案 0 :(得分:1)

试试这样..

var lstTemp = redisUsers.Lists["Order_Cash|123|1"].ToList();

foreach(var item in lstTemp){

// Update here
}

然后在列表中弹出当前项并添加此更新列表。