2011-11-07 47 views
0

我有一個包含自定義類型元素數組的文檔:

{ 
    _id: 'id', 
    name: '', 
    customElements: [ 
     { _id: 'id', 
     name: 'name'} 
    ] 
} 

在C#中我有相應的類:

public class CustomElement 
{ 
    [BsonId] 
    public ObjectId id { get; set; } 
    public string name { get; set; } 

    CustomElement() 
    { 
     id = ObjectId.GenerateNewId(); 
    } 
} 

使用c#官方驅動程序,我嘗試創建一個Update語句:

var update = Update.AddToSet("customElements", new CustomElement { name = "name"}); 

但它顯示不能分配給BsonValue。如何轉換它和$ addToSet?

回答

2

選項1,通過包裹方法這是附帶的驅動程序版本1.0:

Update.AddToSetWrapped<CustomElement>("customElements", 
         new CustomElement() { name = "name"); //c# driver >= 1.0 

選項2,轉換類通過ToBsonDocument()extention方法BsonValue自己。

Update.AddToSet("customElements", new CustomElement() { name = "name"}.ToBsonDocument()); 

希望這會有所幫助。

相關問題