C#在解释空数组[]的嵌入文档值时抛出错误
以下是有关我的开发环境的信息: MongoDB 3.0.0 MongoDB C#驱动程序版本1.7.0.4714 微软Visual Studio专业版2013 .NET Framework 4.0 下面是一个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#类,用于表示一个人
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; }