use*_*853 6 mongodb mongodb-.net-driver
我从MongoDB获取数据并绑定到WPF数据网格.
我的代码选择多行,检索ID并更新所选记录:
var server = MongoServer.Create(this.connectionString);
var db = server.GetDatabase(DATABASE);
var viewTrue = db.GetCollection(RISKALERT_TBL);
var count = viewTrue.Count();
foreach (RiskSettings row in grdRiskAlerts.SelectedItems)
{
viewTrue.Update(Query.EQ("ID",row.ID), Update.Set("View", "False"));
LoadandBindData();
}
Run Code Online (Sandbox Code Playgroud)
但它没有更新记录.
我想也许row.id返回字符串,ID数据类型是objectId.
此查询适用于除上述情况之外的其他数据类型.
Zai*_*sud 13
要将字符串转换为a ObjectId,请使用ObjectId.Parse(string)方法.
也尝试匹配"_id"而不是"ID".
所以类似于:
viewTrue.Update(Query.EQ("_id", ObjectId.Parse(row.ID)), Update.Set("View", "False"));
Run Code Online (Sandbox Code Playgroud)
在为ObjectID设置公共属性时遇到了相同的问题。
我的属性使用以下代码片段将ObjectID转换为字符串,然后又转换回ObjectID。
没有提供ObjectID作为选项,因此我必须使用完整的名称空间来访问.Parse()此类文件MongoDB.Bson.ObjectId.Parse
public string Id
{
get { return Convert.ToString(_id); }
set { _id = MongoDB.Bson.ObjectId.Parse(value); }
}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
28233 次 |
| 最近记录: |