SaveChanges
Entity Framework (CF、C#) で/を呼び出すときSaveChangesAsync
に、変更の競合が発生した場合 (たとえば、最後の読み取り以降に値が更新された場合)、これら 2 つの例外のどちらDbUpdateConcurrencyException
をOptimisticConcurrencyException
キャッチする必要がありますか?
そして、それらの違いは何ですか?
SaveChanges
Entity Framework (CF、C#) で/を呼び出すときSaveChangesAsync
に、変更の競合が発生した場合 (たとえば、最後の読み取り以降に値が更新された場合)、これら 2 つの例外のどちらDbUpdateConcurrencyException
をOptimisticConcurrencyException
キャッチする必要がありますか?
そして、それらの違いは何ですか?
DbUpdateConcurrencyException
によってスローされる特定の例外DbContext
であるため、これをキャッチする必要があります。この例外は、基になる によって発生する可能性がありますがOptimisticConcurrencyException
、その場合、この例外は内部例外としてラップされます。
DbUpdateException
すべての更新例外が同時実行によって発生するわけではないため、キャッチ後にキャッチする必要もありますDbUpdateConcurrencyException
(後者は のサブタイプであるためDbUpdateException
)。
エンティティ フレームワーク 5.0 は楽観的同時実行例外を処理しますか?も参照してください。.