【发布时间】:2018-01-01 15:52:49
【问题描述】:
我正在尝试从我的 TestObject 类中设置 ObjectId。唯一的问题是我不断收到异常,我无法调试这个序列化过程。
我的 MongoDB:
{
"_id" : LUUID("964c87a0-bf8a-1f4e-be85-7aadb5315adb")
}
解析“MongoDataSource”数据源时出错:调用数据检索方法时出错。
--- 内部异常 ---
反序列化 TestObject 类的 Object 属性时出错:无法从 BsonType 'Binary' 反序列化 'ObjectId'。
--- 内部异常 ---
无法从 BsonType 'Binary' 反序列化 'ObjectId'。
[DataObject]
public class TestObject
{
[BsonId]
[BsonElement("_id")]
public ObjectId ObjectId { get; set; }
}
如果我将其设为 BsonType.Binary
解析“MongoDataSource”数据源时出错:调用数据检索方法时出错。
--- 内部异常 ---
调用的目标已抛出异常。
--- 内部异常 ---
二进制不是 ObjectIdSerializer 的有效表示。
[DataObject]
public class TestObject
{
[BsonId]
[BsonElement("_id")]
[BsonRepresentation(BsonType.Binary)]
public ObjectId ObjectId { get; set; }
}
【问题讨论】:
-
也许它不应该被转换为
ObjectId类型。换句话说,您正在对注释和序列化程序进行更改,但您忘记更改类本身中属性的“类型”。俗话说,有点像把方钉塞进圆孔里。
标签: mongodb bson mongodb-.net-driver