2011-11-07 53 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()); 

希望这会有所帮助。

相关问题