2017-05-06 16 views
0

BsonDocumentからデシリアライズすると問題が発生しました。より正確には、BsonDocumentからBsonArrayを抽出してListに変換する方法を理解できませんでした。 BsonDocumentはデータベースによって提供されます。BsonArrayをリストに追加静的モデル

対応する属性を持つモデル:

[BsonIdAttribute] 
    [BsonElementAttribute("_id", Order = 1)] 
    public ObjectId ID { get; set; } 

    [BsonElementAttribute("nm", Order = 2)] 
    public string Name { get; set; } 

    [BsonElementAttribute("vc", Order = 3)] 
    public List<Vocab> Vocabs { get; set; } 

    [BsonElementAttribute("own", Order = 4)] 
    public User Owner { get; set; } 

    [DisplayFormat(DataFormatString = "{0:dd-mm-yyyy}", ApplyFormatInEditMode = true)] 
    [BsonElementAttribute("cr", Order = 5)] 
    public DateTime Created { get; set; } 


    [DisplayFormat(DataFormatString = "{0:dd-mm-yyyy}", ApplyFormatInEditMode = true)] 
    [BsonElementAttribute("md", Order = 6)] 
    public DateTime Modified { get; set; } 

、ここで生成いくつかのサンプルデータ:

var vg = new VocabGroup("Unit 1", new List<Vocab>(), user); 
Console.WriteLine(vg.ToBsonDocument().ToString()); 

{ "_id" : ObjectId("590dafded618ce167bc571fd"), "nm" : "Unit 1", 
"vc" : [], 
"own" : { "_id" : ObjectId("590dafded618ce167bc571fc"), 
    "unm" : "john", 
    "nm" : "John", 
    "em" : "[email protected]", 
    "pwd" : "password", 
    "cr" : ISODate("2017-05-06T11:13:34.954Z") }, 
"cr" : ISODate("2017-05-06T11:13:34.974Z"), 
"md" : ISODate("2017-05-06T11:13:34.974Z") } 

ノート"vc": [] 単に文書化するかしないそのプロセスを逆にするいずれかの方法があります手でそれを行う必要がありますか?もしそうなら、それをどうやって行うのか説明してください。

ありがとうございます。

答えて

0

正しいジェネリック型引数をIMongoCollection<T>に与えると、ドライバが自動的にシリアル化およびデシリアライズすることがわかりました。

関連する問題