如果您有两个独立的更新对象:
var U1 = Builders<T>.Update.Set(_ => _.A, null);
var U2 = Builders<T>.Update.Set(_ => _.B, null);
如何将它们链接起来,结果如下:
var U = Builders<T>.Update.Set(_ => _.A, null).Set(_ => _.B, null);
我试着这样做:
var U = U1 & U2;
并且,虽然它适用于过滤器,但它不适用于更新
答案 0 :(得分:2)
您可以通过附加新集来添加到现有更新定义。
var U1 = Builders<T>.Update.Set(_ => _.A, null);
var U = U1.Set(_ => _.B, null);
我承认&
运算符不能用于更新定义,这有点好笑。另外:您自己的代码也暗示了这一点。
在我们的一个项目中,我们在循环中使用它来构造一组组合操作。
答案 1 :(得分:0)
如果你有多个条件或者你想使用 foreach 循环,你可以这样做
var update = Builders<User>.Update.Combine();
if(Name != null)
{
update = update.Set(Name, newValue);
}
这样您就不必使用 set 语句来初始化更新对象。