有什么聪明的方法可以做到这一点吗?
如果使用Linq2Nhibernate
,您似乎真的必须依赖HQL
或喜欢从数据库中进行多次删除(无需加载并一一删除)?
好像Linq2Sql
也没有?我只想要一些可以做的事情,比如:
DELETE FROM Accounts WHERE amount < 1000
有任何想法吗?
有什么聪明的方法可以做到这一点吗?
如果使用Linq2Nhibernate
,您似乎真的必须依赖HQL
或喜欢从数据库中进行多次删除(无需加载并一一删除)?
好像Linq2Sql
也没有?我只想要一些可以做的事情,比如:
DELETE FROM Accounts WHERE amount < 1000
有任何想法吗?
简短的回答是:你不能。
您可以执行以下操作:
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