我正在使用 MongoDB 将文档反序列化为 C# 对象,并且遇到了 ObjectID 字段的问题。这是我得到的错误:
缺少类 MyProject.Data.MyDocument 的属性“LayoutId”的必需元素“LayoutId”。
哪个(如果它看起来并不奇怪)确实有意义,因为指定了 LayoutId 字段:
using System;
using MongoDB.Bson;
using MongoDB.Bson.Serialization.Attributes;
namespace MyProject.Data
{
public class MyDocument
{
public override ObjectId Id { get; set; }
[BsonRequired]
public String Name { get; set; }
[BsonRequired]
public ObjectId LayoutId { get; set; }
}
}
并将其填充在数据库中:
那么序列化过程的哪些其他方面可以阻止这个元素被填充呢?特定版本的驱动程序是否存在错误?我是否使用了正确的数据类型?
还应该注意的是:
- 该文档用于在数据库中填充该值,因此似乎只有反序列化是一个问题,而序列化很好。
- 同一个库中还有其他文件有同样的问题。
- 在同一个解决方案中有 mongo 文档/合同,但在不同的库中似乎没有相同的问题,