2012-04-04 5 views
0

私はC#とmongodb公式ドライバを使用しています。 BisonClassMapクラスを使用してエンティティをマップするときに問題があります。ここではいくつかのサンプルコードは次のとおりです。MongoDB SetDefaultValueが機能しません - なぜですか?

BsonClassMap.RegisterClassMap<Article>(cm => 
{ 
     cm.AutoMap(); 
     cm.GetMemberMap(c => c.Title).SetElementName("title").SetDefaultValue("abc"); 
} 

私はそれがDBへ保存するとき、私は常にタイトルフィールドではなく、期待される「ABC」にnull値を取得します。私は列挙型を試して同じ問題を抱えています - どこが間違っていましたか?

答えて

2

デシリアライズ時にデフォルト値が使用され、デシリアライズされるドキュメントにそのフィールドまたはプロパティの値がない場合は、フィールドまたはプロパティに値を割り当てます。

Titleプロパティのnull値を使用してメモリ内にオブジェクトを作成すると、nullがデータベースに格納されます。 Titleがnullであるという理由だけで、ドキュメントが保存されたときにデフォルト値に置き換えられるというわけではありません。

+0

ありがとうございました。私はちょうどdbから "タイトル"フィールドを削除して、私は美しい "abc"を持って、私は公式のチュートリアルでは、 "デフォルト値"のセクションでは、シリアル化を印刷する:)混乱していたもちろん、 m初心者、あなたの答えに感謝します。 –

関連する問題