2

私の開発環境に関する情報は次のとおりです。

モンゴDB 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; }
   }

locOfHouse = [] を設定するモバイル アプリケーション コンポーネントによって使用される 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);

            });

        } 

ただし、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