我想从我的TestObject类设置ObjectId。唯一的问题是我不断收到异常,我无法调试这个序列化过程。二进制不是ObjectIdSerializer的有效表示
我的MongoDB:
{
"_id" : LUUID("964c87a0-bf8a-1f4e-be85-7aadb5315adb")
}
在解析 'MongoDataSource' 数据源发生了一个错误:invaking数据检索方法时发生错误。
--- ---的InnerException
反序列化类的TestObject的对象属性时出现错误:无法从BsonType“二进制”反序列化“的ObjectId”。
--- ---的InnerException
不能反序列化 '的ObjectId' 从BsonType '二进制'。
[DataObject]
public class TestObject
{
[BsonId]
[BsonElement("_id")]
public ObjectId ObjectId { get; set; }
}
如果我让一个BsonType.Binary而解决“MongoDataSource”数据源发生
一个错误:invaking数据检索方法中出错。
--- InnerException ---
异常已被调用的目标抛出。
--- ---的InnerException
二进制不是一个ObjectIdSerializer的有效表示。
[DataObject]
public class TestObject
{
[BsonId]
[BsonElement("_id")]
[BsonRepresentation(BsonType.Binary)]
public ObjectId ObjectId { get; set; }
}
也许不应该将其转换为ObjectId类型。换句话说,您正在对注释和序列化程序进行更改,但您忘记更改类本身中的“类型”属性。俗话说,有点像将一个方形钉塞入圆孔中。 –