如何将数组添加到Mongo实体类?

时间:2018-11-13 01:43:31

标签: c# mongodb

我想使用List <>创建一个数组。例如:

Class Test{
    public ObjectId Id {get;set;}
    public string name {get;set;}
    public List<Field> fields {get;set;}
}
Class Field{
    public ObjectId Id {get;set;}
    public string name {get;set;}
    public string value {get;set;}
    ......
}

这是将其保存到数据库中的代码:

var a = new Test();
a.name = "Saw";
var field1 = new Field();
field1.name="BIZMSGID";
a.fields = new List<Field>();
a.fields.Append(field1);
var collection = database.GetCollection<Test>("test");
collection.InsertOne(a);

结果是这样。(在Linqpad中) enter image description here

为什么field1无效?

1 个答案:

答案 0 :(得分:1)

您正在使用LINQ方法Append

a.fields.Append(field1);

文档中Append的备注部分指出:

  

此方法不会修改集合的元素。而是使用新元素创建集合的副本。

因此,简而言之:您不是在修改a.fields,而是在创建一个以field1作为最后一项的LINQ视图。

您应该使用列表的add方法:

a.fields.Add(field1);