10gen c# driver for mongodbへの最新のアップデートでは、強く型付けされたバージョンを使用するようにコードを更新したいと思います。mongo 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
しかし、私はこの例外を取得:
発現用のシリアル化情報を決定することができません。 : (アルバムx)=> x.Ratings.get_Item(WebApp.Areas.API.Controll ers.RatingController + <> c__DisplayClass5.index).Number。
リスト内のアイテムを更新する方法はありますか?
ありがとうCraig、本当にうれしいのは、_session.Db()を呼び出すときです。GetCollection( "Advertisement") "広告"を書く必要がなく、デフォルトで名前私たちはアプリで魔法の文字列を持っていないだろう! mongo-LINQで行われてきたとても素晴らしい仕事です! –
VinnyG
それは進行中の議論です。 https://jira.mongodb.org/browse/CSHARP-126。今のところ、ほとんどの人はコレクション名にtypeof(T).Nameを使う拡張メソッドを書いています。 –
1.6.1以降に修正されました – VinnyG