Với bản cập nhật gần đây cho 10gen c# driver for mongodb Tôi muốn cập nhật mã của mình để mã sử dụng phiên bản được nhập mạnh mẽ.cách cập nhật các mục trong một mảng/danh sách với trình điều khiển mongo C#?
gọi trước đây của tôi là:
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
Cuộc gọi mới sẽ là:
update.Set(x => x.Ratings[index].Number, number);
//update2.Set("Ratings." + index + ".Number", number); previous call
Nhưng tôi nhận được ngoại lệ này:
Không thể xác định thông tin serialization cho sự biểu hiện : (Album x) => x.Ratings.get_Item (WebApp.Areas.API.Controll ers.RatingController + <> c__DisplayClass5.index) .Number.
Có cách nào để tôi có thể cập nhật một mục trong Danh sách không?
Cảm ơn Craig, điều gì đó cũng sẽ thực sự thú vị là khi gọi _session.Db(). GetCollection ("Quảng cáo") nếu chúng ta không phải viết "Quảng cáo" và nó sẽ theo mặc định tên của lớp nên chúng tôi sẽ không có chuỗi ma thuật trong ứng dụng! Đó là một số công việc rất tốt đẹp đã được thực hiện trong mongo-LINQ! –
VinnyG
Đó là một cuộc tranh luận đang diễn ra. https://jira.mongodb.org/browse/CSHARP-126. Bây giờ, hầu hết mọi người viết một phương pháp mở rộng sử dụng typeof (T) .Name cho tên bộ sưu tập. –
Cố định kể từ 1.6.1 – VinnyG