customer_id、name、address、および balance 列を含む銀行口座テーブルがあるとします。顧客がお金を預けたり引き出したりしているため、残高は常に変化しています。DBConcurrencyException を同時に取得せずに顧客のアドレスを推測するにはどうすればよいですか?
この状況での一般的なアプローチは何ですか。2 人のユーザーがテーブル行の同じセルを変更することはできませんが、同じ行の異なるセルを変更し、行を新しい値で問題なく更新することは可能ですか?
customer_id、name、address、および balance 列を含む銀行口座テーブルがあるとします。顧客がお金を預けたり引き出したりしているため、残高は常に変化しています。DBConcurrencyException を同時に取得せずに顧客のアドレスを推測するにはどうすればよいですか?
この状況での一般的なアプローチは何ですか。2 人のユーザーがテーブル行の同じセルを変更することはできませんが、同じ行の異なるセルを変更し、行を新しい値で問題なく更新することは可能ですか?
詳細情報が記載されているリンクhttp://blog.sqlauthority.com/2008/08/18/sql-server-detailed-explanation-of-transaction-lock-lock-type-avoid-locks/を参照してください。
LINQ を使用しているかどうかはわかりませんが、使用している場合は、同時実行の処理方法を確認する必要があります。LINQ はオプティミスティック コンカレンシーを使用します。したがって、基本的に、ユーザーがレコードを更新しようとして、その間にレコードが更新された場合、同時実行の競合が発生します。
ただし、LINQ テーブルのどのプロパティを同時実行チェックに使用するかを決めることができます。その場合、LINQ はそのレコードの値が変更されても気にしません。
例外を処理する方法もあります。例外の周りに try ブロックを配置し、さまざまなシナリオを処理するコードを記述します。