我有一个像
这样的课程 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'
对此有任何帮助吗?
答案 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。