【问题标题】:How to update collection via BlToolkit如何通过 BlToolkit 更新收藏
【发布时间】:2014-03-12 13:14:03
【问题描述】:

我有一组由属性 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 次查询(而 nusers 的大小> 收藏),这是我试图避免的。

还有其他(更好的)解决方案可以像这样更新整个集合吗?

【问题讨论】:

    标签: c# performance entity-relationship bltoolkit


    【解决方案1】:

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

    using BLToolkit.Data.Linq

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

    在你的情况下,像这样使用它:

    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
    }
    

    【讨论】:

      猜你喜欢
      • 2018-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多