如何将Update.Set()与Type List属性<>一起使用?在MongoDB(c#)?

时间:2012-03-15 10:43:15

标签: mongodb mongodb-.net-driver

我有一个像

这样的课程
 class RiskAlertSettings
{
    public object _id { get; set; }
    public string UserName { get; set; }
    public List<RiskAlertType> Alert { get; set; }
    public string EmailList { get; set; }
    public string SMTPClient { get; set; }
    public string SMSList { get; set; }
    public string SoundType { get; set; }
}

我成功插入了数据。但是在更新时遇到了错误。 我的问题是

riskAlertSettings.Update(Query.EQ("UserName", settings.UserName), Update.Set("Alert",settings.Alert));

我的错误是

The best overloaded method match for 'MongoDB.Driver.Builders.Update.Set(string, MongoDB.Bson.BsonValue)' has some invalid arguments    

无法从'System.Collections.Generic.List'转换为'MongoDB.Bson.BsonValue'

对此有任何帮助吗?

2 个答案:

答案 0 :(得分:0)

您只需将列表转换为Bson类型,很可能是数组。只需换行

new BsonArray(settings.Alert)

在你的名单周围。

riskAlertSettings.Update(Query.EQ("UserName", settings.UserName), 
    Update.Set("Alert",new BsonArray(settings.Alert)));

BsonArray类位于MongoDB.Bson命名空间中。

答案 1 :(得分:0)

您可以使用SetWrapped<T>(name:String, value:T)课程中的MongoDB.Driver.Builders.Update。然后,您不必在更新方案中专门创建BsonArray。