c# 和 mongoDB - 无法从 BsonType Null 反序列化

Ric*_*ard 5 c# serialization mongodb

我是 MongoDB 的新手,我一直在认真阅读使用 MongoDB 2.2 和官方 C# 驱动程序的初学者指南http://www.codeproject.com/Articles/524602/Beginners-guide-to-using-MongoDB官

一切似乎都很顺利,除了我不确定如何处理 MongoDB Null 值

这是我的数据结构

public class DataStructure
{
    public ObjectId _id { get; set; }
    public DateTime CreatedOn { get; set; }
    public DateTime UpdatedOn { get; set; }
    public string ClaimId { get; set; }
    public string Status { get; set; }
    public string FmcCity { get; set; }
    public string FmcState { get; set; }
    public Int32 TestType { get; set; }
    public List<LineItemStructure> LineItems { get; set; }
}

public class LineItemStructure
{
    public string LineItemDescription { get; set; }
    public string LineItemType { get; set; }
    public string PartNumber { get; set; }
    public double LaborHours { get; set; }
    public double Quantity { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

这是连接到 MongoDB 并拉回值的代码,直到遇到空字段值并返回以下错误

       var client = new MongoClient(connectionString);
       MongoServer server = client.GetServer();
       var database = server.GetDatabase("FleetClaims");
      MongoCollection< DataStructure> collection = database.GetCollection< DataStructure >("Claims");
        //Execute the query
        MongoCursor< DataStructure> results = collection.FindAll();
Run Code Online (Sandbox Code Playgroud)

“反序列化类的 LineItems 属性时发生错误......:反序列化类的 LaborHours 属性时发生错误......:无法从 BsonType Null 反序列化 Double。”

任何人都可以建议参考或不同的方法来处理空值吗?BsonString.Empty 会在这里帮助我吗?

Ric*_*ard 6

public double? LaborHours { get; set; }
public double? Quantity { get; set; }
Run Code Online (Sandbox Code Playgroud)

允许我将空值传递到这些字段中。