如何通过BlToolkit更新集合



我有一个由属性Id标识的用户集合,对于每个用户,我想将他的用户名更新为username+"!"

在bltoolkit中,我尝试这样做:

using(var db = new DbManager)
{
    foreach(var user in users)
    {
        db.GetTable<User>().Where(x=>x.Id == user.Id).Set(x=>x.Username, x.Username + "!").Update();
    }        
}

我认为这将使n查询数据库(而n用户集合的大小),这是我试图避免的。

是否有其他(更好的)解决方案来更新整个集合?

将此用法添加到您的代码中:

using BLToolkit.Data.Linq

现在你可以在你的DbManager中使用Update<T>扩展方法。此方法允许您通过将实体集合作为参数传递来进行批量更新。

在你的例子中像这样使用:

using(var db = new DbManager)
{
    foreach(var user in users)
       user.Username = user.Username + "!";  //update each user in collection first
    db.Update<User>(users);  //just one database call for batch update
}

相关内容

  • 没有找到相关文章

最新更新