C#在解释空数组[]的嵌入文档值时抛出错误

C#在解释空数组[]的嵌入文档值时抛出错误,c#,arrays,mongodb,null,embedded-documents,C#,Arrays,Mongodb,Null,Embedded Documents,以下是有关我的开发环境的信息: MongoDB 3.0.0 MongoDB C#驱动程序版本1.7.0.4714 微软Visual Studio专业版2013 .NET Framework 4.0 下面是一个C#类,其对象将用作嵌入文档: public class Location { public double lng { get; set; } public double lat { get; set; } } 下面是一个C#类,用于表示一个人

以下是有关我的开发环境的信息:

MongoDB 3.0.0

MongoDB C#驱动程序版本1.7.0.4714

微软Visual Studio专业版2013

.NET Framework 4.0

下面是一个C#类,其对象将用作嵌入文档:

   public class Location
   {
       public double lng { get; set; }
       public double lat { get; set; }
   }
下面是一个C#类,用于表示一个人的房子:

   public class House
   {
       public String houseDescription { get; set; }
       public Location locOfHouse  { get; set; }
   }
我们有一个由移动应用程序组件使用的C#API模块,它将设置 住所=[]

这意味着在名为House的MongoDB集合中,我们可以拥有以下文档:

{
  "_id" : ObjectId("56c455ee26b49c090019b439"),
  "houseDescription" : "Multi-floor house with elevator and staircase",   
  "locOfHouse" : []
}
在我的C#应用程序中,我有以下映射到BSON的类

     if (false == BsonClassMap.IsClassMapRegistered(typeof(House)))
        {
            BsonClassMap.RegisterClassMap<House>(cm =>
            {
                cm.AutoMap();
                cm.MapProperty<Location>(c => (Location)c.locOfHouse);

            });

        } 
如何更改我的C#应用程序代码,使其不会抛出上述错误?

随列表更改

public Location locOfHouse  { get; set; }

公共列表locOfHouse{get;set;}

为什么将“C#API模块”设置为空数组?这就是坏代码-我最初会尝试修复它,而不是让其他一切都围绕坏数据工作。它由另一个开发人员处理,他希望我只处理代码中的空数组。您应该同意数据模型。如果模型是
lochouse
是一个单一值,那么其他开发人员应该更改他们的代码。如果模型是
locOfHouse
应该是一个集合(我觉得这很奇怪),那么您应该更改
House
类。试图维护两个不兼容的数据模型是一个痛苦的秘诀。
public Location locOfHouse  { get; set; }
public List<Location> locOfHouse  { get; set; }