我有一个类 (a),它继承了 (b) 的列表。
public class a : List<b>
{
}
现在,当我尝试将此类的对象保存到 Mongo 时,出现错误。
序列化器 EnumerableSerializer<b> 期望 ArraySerializationOptions 类型的序列化选项,而不是 DocumentSerializationOptions。
你有没有遇到过这样的事情,如果有人能提供一些启示,那就太好了。我在文档或网上找不到太多关于此的内容。
保存到 MongoDB 的顶级文档不能是列表,它必须是一个类。它还必须有一个 Id 字段。所以你可以做这样的事情:
public class C
{
public ObjectId Id { get; set; }
public A List { get; set; }
}
public class A : List<B>
{
}
您在文档中封装了类型 A 的列表(在本例中为类型 C)。
但是,如果您决定保留 A 类型的类,请小心。如果向 A 类添加自定义属性,则必须编写自定义序列化程序以确保您添加的自定义值与列表值一起正确序列化。看: