24

SaveChangesEntity Framework (CF、C#) で/を呼び出すときSaveChangesAsyncに、変更の競合が発生した場合 (たとえば、最後の読み取り以降に値が更新された場合)、これら 2 つの例外のどちらDbUpdateConcurrencyExceptionOptimisticConcurrencyExceptionキャッチする必要がありますか?

そして、それらの違いは何ですか?

4

2 に答える 2

20

DbUpdateConcurrencyExceptionによってスローされる特定の例外DbContextであるため、これをキャッチする必要があります。この例外は、基になる によって発生する可能性がありますがOptimisticConcurrencyException、その場合、この例外は内部例外としてラップされます。

DbUpdateException すべての更新例外が同時実行によって発生するわけではないため、キャッチ後にキャッチする必要もありますDbUpdateConcurrencyException(後者は のサブタイプであるためDbUpdateException)。

エンティティ フレームワーク 5.0 は楽観的同時実行例外を処理しますか?も参照してください。.

于 2014-02-26T09:00:59.207 に答える