我有一个 C# 类,我实例化并使用它在集合中执行 CRUD 操作
public class Property
{
[BsonId]
public long id { get; set; }
[BsonElement("address_line")]
public string address_line { get; set; }
[BsonElement("city")]
public string city { get; set; }
[BsonElement("zip")]
public string zip { get; set; }
}
我希望能够使用 foreach 循环并使用 $set 构造更新命令而不指定每个元素,如下所示:
var updateValues = new List<UpdateBuilder>();
foreach (var element in property.Elements)
updateValues.Add(Update.Set(element.Name, element.Value));
collection.Update(Query.EQ("_id", property.id), Update.Combine(updateValues));
我这可能吗?
这似乎有效:
var updateValues = new List<UpdateBuilder>();
foreach (var element in property.ToBsonDocument().Elements)
{
if (element.Name != "_id")
{
updateValues.Add(Update.Set(element.Name, element.Value));
}
}
collection.Update(Query.EQ("_id", property.id), Update.Combine(updateValues));
不确定是否有更好的解决方案,这避免了链接 .Set() 命令,尽管我需要检查元素是否不是像 _id 那样只读
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)