Несколько удалений с использованием LINQ (точнее Linq2Nhibernate, но ...) - PullRequest
2 голосов
/ 11 октября 2008

Есть ли какой-нибудь умный способ сделать это?

Если вы используете Linq2Nhibernate, вам действительно нужно полагаться на HQL или ему нравится делать несколько удалений из базы данных (без загрузки и удаления по одному)?

Не похоже, что Linq2Sql тоже? Я просто хочу что-то, что может делать что-то вроде:

DELETE FROM Accounts WHERE amount < 1000

Есть идеи?

1 Ответ

3 голосов
/ 12 октября 2008

Короткий ответ: вы не можете.

Вы можете сделать что-то вроде:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...