2

これを行う賢い方法はありますか?

を使用している場合、(1 つずつロードして削除することなく) データベースから複数の削除を行うには、またはそのような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 に答える