2010-12-08 10 views
14

公式のMongoDBドライバのv0.9を使用しています。コレクションを読み込もうとしています。オブジェクトに読み込みたくないフィールドがデータベースにありますが、次のエラーが発生します。Mongo C#ignoreプロパティ

「予期しない要素:ネットワーク」

コレクションは、データベースに次のようになります

Merchants 
- _id 
- Name 
- Description 
- Url 
- Network 

私はC#の中にそれを読んだとき、私は同じ性質のすべてを持っている商人と呼ばれるオブジェクトを作成したいですただし、「ネットワーク」は除きます。これはどうすればいいですか?

+0

いくつかのコードがいいだろう。 –

答えて

21

BSONシリアライザに「IgnoreExtraElements」オプションがあり、これを有効にするとエラーを防ぐことができます。

のどちらかがあなたのMerchantクラスに属性として設定します。

[BsonIgnoreExtraElements] 
public Merchant { 
    // fields and properties 
} 

かのコードでは、クラスマップを使用している場合:

BsonClassMap.RegisterClassMap<Merchant>(cm => { 
    cm.AutoMap(); 
    cm.SetIgnoreExtraElements(true); 
}); 
+1

エンティティごとに個別に指定することなく、すべてのエンティティの余分な要素を無視する方法はありますか? – Jos

+2

私は自分自身の問題の解決策をstackoverflowで見つけました:http://stackoverflow.com/questions/12944520/implement-for-all-classes-bsonignoreextraelements – Jos