Mongo C#继承列表

时间:2013-02-22 14:18:13

标签: c# list mongodb

我有一个类(a)继承了(b)的列表。

public class a : List<b>
{

}

现在,当我尝试将此类的对象保存到Mongo时,我收到错误。

  

Serializer EnumerableSerializer&lt; b&gt;预期的序列化选项   键入ArraySerializationOptions,而不是DocumentSerializationOptions。

你有没有遇到过这样的事情,如果有人能够发出一些很棒的光。我无法在文档或网络上找到相关内容。

1 个答案:

答案 0 :(得分:1)

保存到MongoDB的顶级文档不能是列表,它必须是一个类。它还必须有一个Id字段。所以你可以这样做:

public class C
{
    public ObjectId Id { get; set; }
    public A List { get; set; }
}

public class A : List<B>
{
}

在文档中封装了类型A的列表(在这种情况下为C类型)。

但是,如果您决定保留A类的类,请务必小心。如果您向A类添加自定义属性,则必须编写自定义序列化程序,以确保您添加的自定义值与列表值。参见:

https://jira.mongodb.org/browse/CSHARP-460