所以今天我意识到我在更新/推送到数组时遇到问题。我在一个类中有一个数组,它只是一个自动属性
public List<things> Things { get; set; }
这可以作为 null 放入数据库中,如果我稍后需要编写类似的查询
var query = Query.EQ("_id", something.Id);
var update = Update.Push("Things", thing.ToBsonDocument());
coll.Update(query, update);
我现在遇到了一个问题,因为我的更新将引发一个异常,我试图将其推送到 NULL 数组。
我通过在类(class)中放置一个私有(private)支持者解决了这个问题
private List<things> _things = new List<things>();
public List<things> Things { get { return _things;} set { _things = value;} }
现在至少一个新实例将有一个空数组,并且有人需要明确地说
Things = null
但是我想知道是否有更好的方法来解决这个问题。装饰师?蒙戈指数?有话要说,嘿这个字段必须始终是一个数组。
我一直对自动属性持怀疑态度,并且更喜欢使用私有(private)支持者,尤其是对于非基元。只是想知道 Mongo 引擎中是否存在内置的更强大的解决方案。
最佳答案
如果您更喜欢使用自动属性,您可以简单地让构造函数创建空列表。
public YourClass()
{
Things = new List<things>();
}
然后 auto 属性就可以简单地工作,唯一丑陋的地方就是构造函数。
这就是我所做的
关于c# - MongoDB 推送到空数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25022764/