[英]how to update items in an array/list with mongo c# driver?
隨着mongodb的10gen c#驅動程序的最新更新,我想更新我的代碼,因此它使用強類型版本。
我之前的電話是:
var update2 = new UpdateBuilder();
var index = album.Ratings.IndexOf(rating);
update2.Set("Ratings." + index + ".Number", number);
update2.Set("Rating", album.Rating);
_session.Db().GetCollection<Album>("Album")
.Update(Query<Album>.Where(x => x.Id == objId), update2); //this line is working
新的電話會是:
update.Set(x => x.Ratings[index].Number, number);
//update2.Set("Ratings." + index + ".Number", number); previous call
但是我得到了這個例外:
無法確定表達式的序列化信息:(Album x)=> x.Ratings.get_Item(WebApp.Areas.API.Controllers.RatingController + <> c__DisplayClass5.index).Number。
有什么方法可以更新List中的項目嗎?
有趣的問題。 這在使用如下常量時有效:
var update = Update<Album>.Set(x => x.Ratings[0].Number, 10);
但是,當您使用變量時,這顯然會中斷,就像您使用索引一樣。 這絕對是個錯誤。 我在這里創建了一個Jira問題: https : //jira.mongodb.org/browse/CSHARP-598 。
這很可能是因為我們在處理表達式之前沒有對其進行部分評估。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.