2014-03-12 44 views
1

更新集合我有物業識別標識用戶集合併爲每個用戶我想更新自己的用戶名,以類似用戶名+「!」如何通過BlToolkit

在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(); 
    }   
} 

我想,這將使ň數據庫查詢(而ñ用戶集合的大小),這是我想要避免的。

是否有任何其他(更好)的解決方案來更新整個集合?

回答

4

此使用添加到您的代碼:

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 
}