我正在使用Mongodb的C#驱动程序2.8将C#对象序列化为版本3.4.9的Mongdb数据库。
在保存的一些文档中,我得到此文档{“ _csharpnull”:true},我不知道为什么C#驱动程序会创建这样的文档。而且,当我尝试对其进行反序列化时,它当然行不通。
保存文档的示例
{
"_id" : "LINESTEST/YA11",
"Metadata" : {
"LockMetadata" : {
"_csharpnull" : true
}
}
}
答案 0 :(得分:1)
如果我们假设您的参数LockMetadata == null
的类型为LockMetadata
或从其派生的任何内容,例如MongoDB.Bson.BsonValue
,则在C#端有BsonDocument
时,这是预期的您的C#模型(或表示为see documentation),
代码LockMetadata .ToBsonDocument()
将序列化为_csharpnull
,并在mongodb服务器下显示如下:
"yourObjectProperty" : {
"_csharpnull" : true
},