Skip to main content
 首页 » 编程设计

c#之如何通过 BlToolkit 更新集合

2024年02月13日30EasonJim

我有一组由属性 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

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

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

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 
}