2008-10-11 30 views
2

有沒有什麼聰明的方法來做到這一點?多個刪除使用LINQ(更具體地說,Linq2Nhibernate,但...)

如果使用Linq2Nhibernate,你真的好像不得不依賴HQL或類似的方式從數據庫中進行多次刪除(不需要逐一加載和刪除)?

它好像不是Linq2Sql嗎?我只是想要一些可以做的東西,如:

DELETE FROM Accounts WHERE amount < 1000 

任何想法?

回答

3

簡短的回答是:你不能。

你可以這樣做:

var q = from account in dataContext.Accounts 
    where account.amount < 1000 
    select account; 

dataContext.DeleteAllOnSubmit(q); 

但是,因爲框架需要跟蹤併發的問題,它會永遠執行單獨刪除(所以如果你有500行,將被刪除,它會發送500刪除報表)

對於更長的版本和解決方案,請參閱:http://www.aneyfamily.com/terryandann/post/2008/04/Batch-Updates-and-Deletes-with-LINQ-to-SQL.aspx

相關問題