我试图更新Mongo中的一个对象,其中包含一个对象数组。其他字段工作正常,但我无法弄清楚如何告诉它只是在更新期间设置一个数组。
var update = new UpdateDefinitionBuilder<MyPost>()
.Set(m => m.Title, "Some Title") //works fine
.Set(m => m.Contact, myPost.Contacts.ToArray()); //throws compiler error
编译器吐出:
错误CS1660:无法将lambda表达式转换为type &#39;&FieldDefinition LT; MyPost,联系[]&gt;&#39;因为它不是代表 类型。
答案 0 :(得分:0)
我意识到这已经过时了,但是我遇到了类似的问题,并且需要进行一些搜索来拼凑答案。
var bsonArray = new BsonArray(BsonDocumentWrapper.CreateMultiple(typeof(Contact), myPost.Contacts));
var update = new UpdateDefinitionBuilder<MyPost>()
.Set(m => m.Title, "Some Title")
.Set(m => m.Contacts, bsonArray);
请注意,如果您未定义类型CreateMultiple(typeof(Contact),..
,则字段"_t" : "SomeNamespace.Contact"
会添加到数据库中数组的每个元素