2015-01-08 4 views
6

MongoDBの最新のC#ドライバを使用しています。私はキャメルケースにシリアル化するために私のプログラムに次のコードを追加しました:Camelcaseコンベンションパックを追加した後の逆シリアル化エラー

var camelCaseConvention = new ConventionPack { new CamelCaseElementNameConvention() }; 
ConventionRegistry.Register("CamelCase", camelCaseConvention, type => true); 

シリアライズを使用した後、文書を照会しようとしたときしかし、私は問題を取得します。例えば:

var query = _collection.AsQueryable<TimeSeries>(); 
Console.WriteLine(query.ToJson()); 

は、以下を返す:

{ "_id" : ObjectId("54af0e848c27be15fc47a0d9"), "Name" : null, "Time" : null } 

すなわち、すべてのプロパティは、ID以外ヌルであると思われます。

フィールド名がラクラク(「名前」と「時間」)で、各ドキュメントに正しいデータ(「名前」:テスト1」と「時刻」:2014)が正しくシリアル化されています。

問題は、クエリ機能は、フィールドはキャメルケースであり、したがって、nullを返すことを認識しないということであるように思える。したがって、私は、任意のオブジェクトをデシリアライズすることができません。

このエラーを回避する方法はありますか?

+0

タイトルを編集しました。 「[質問には「タイトル内に「タグ」を含める必要がありますか」(http://meta.stackexchange.com/questions/19190/)」を参照してください。コンセンサスは「いいえ、そうすべきではありません」です。 –

答えて

4

私は問題を解決することができました。問題は、MongoDB接続を作成した後でコンベンションパックを定義したことでした。彼は、の前に、MongoDBとの接続を初期化する前に、コンベンションパックを登録することによって解決しました。

関連する問題