を変更:MongoDb.Driver 2.4 deserilizationデータ型Iは、以下のPOCOクラスを持っている
class MyClass {
public Objectid _id {get;set;}
public string property1 {get;set;}
public string property2 {get;set;}
public int property3 {get;set;}
}
オブジェクトは、MongoDBのコレクションに格納されます。 が逆シリアル化できません:直列化復元することができませんでした
var items = db.GetCollection<MyClass>("MyClass").AsQueryable().Select(x => x.property1 == "SomeString").ToList();
私はそのproperty2ことを示すエラーが表示されます。
property1: "SomeString"
property2: "12345"
property3: 98765
私がコレクションを照会しようとします。データは、得られたBSONで正しいデータ型を持っていますBsonType「Int64型」から「文字列」
私は自分のオブジェクトに文字列値にDBでBSON文書から文字列値をデシリアライズしようとしています。
はなぜBsonSerializerは小数に変換しようとしていますか?この例では、値は数値であるが、値は通常英数字であるため、フィールドはクラス内で文字列として定義されている。
私はVS2013で、MongoDb.DriverのV2.4パッケージを使用しています。あなたがそのプロパティに対して独自のシリアライザを記述する必要がMongoのプロパティタイプの変更については
コレクション 'property2'の 'MyClass'には、タイプがint64の値が含まれています。 Mongoコンソールで直接javascriptを使用してデータ型を更新することができます。私はC#のドライバは、同じ機能をサポートしていないと思う。 – rnofenko