2

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

MongoDB 3.0.0

MongoDB C# 驱动程序版本 1.7.0.4714

微软视觉工作室专业版 2013

.NET 框架 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 模块,它将设置 locOfHouse = []

这意味着在名为 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);

            });

        } 

但是,基于 Web 的 C# 应用程序在检索上述数据时会引发以下错误:

An error occurred while deserializing the locOfHouse property of class 
House: Expected a nested document representing the serialized form of a Location 
value, but found a value of type Array instead.

如何以不会引发上述错误的方式更改我的 C# 应用程序代码?

4

1 回答 1

1

随列表改变

public Location locOfHouse  { get; set; }

public List<Location> locOfHouse  { get; set; }
于 2018-03-10T01:05:49.297 回答