2

有什么聪明的方法可以做到这一点吗?

如果使用Linq2Nhibernate,您似乎真的必须依赖HQL或喜欢从数据库中进行多次删除(无需加载并一一删除)?

好像Linq2Sql也没有?我只想要一些可以做的事情,比如:

DELETE FROM Accounts WHERE amount < 1000

有任何想法吗?

4

1 回答 1

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

于 2008-10-11T21:05:51.860 回答