0

リストから複数のレコードを選択し、削除/確認ボタンを押して、ユーザーが複数のレコードを削除または確認できるようにしたい。

検索しましたが、バッチEF更新/削除をサポートしていないようです。次のアプローチの違いは何ですか?データベースを直接操作することによる悪影響はありますか?

1-ExecuteSqlCommandメソッドを使用してクエリをdatabase直接実行します。

2-またはentities、選択したIDを使用して作成し、それらstate変更/削除に設定してから、を呼び出しますcontext.SaveChanges()

4

2 に答える 2

2

私は2番目のオプションを選びます-あなたはおそらく良いことであるすべての更新をカバーする1つのトランザクションを持っています。(そうでない場合もあります)

これは、これを行うための最も簡単で迅速な方法でもあります。

パフォーマンスの問題が発生する場合は、先に進んでこれを最適化してください。SQLに変更するか、ORMをNHibernateに変更するか、必要な操作を行ってください。

その上、最初に書き込み、次に最適化するというルールがあります。逆ではありません。

于 2012-11-12T21:05:15.873 に答える
0

オプション1についての考え:

  1. 削除する必要のあるレコードをどのように特定する予定ですか?
  2. IDの配列がある場合、SQLコマンドをn回繰り返す予定はありますか?

オプション2についての考え:

  1. エンティティを選択して変更する必要がある場合は、すべてのエンティティをメモリにロードすることになります。
  2. コンテキストはエンティティタイプを認識し、deleteメソッドを提供するため、実行を延期しながらdeleteメソッドを呼び出すことができる場合があります。
于 2012-11-12T21:10:34.283 に答える