有没有聪明的方法可以做到这一点?
如果使用Linq2Nhibernate
,您似乎真的必须依赖HQL
或者喜欢从数据库中进行多次删除(无需逐个加载和删除)?
似乎Linq2Sql
似乎没有它?我只想要一些可以做的事情:
DELETE FROM Accounts WHERE amount < 1000
有什么想法吗?
答案 0 :(得分: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