SaveChangesAsync in Entity Framework (CF, C#), if a change conflict occurs (for example, the values has been updated since last read thingy), then which of these two exceptions
OptimisticConcurrencyException shall I catch?
And what is the difference between them?
DbUpdateConcurrencyException is a specific exception thrown by
DbContext, so this is the one to catch. This exception may be caused by an underlying
OptimisticConcurrencyException, but if so, this exception is wrapped as the inner exception.
Not all update exceptions are caused by concurrency, so you also have to catch
DbUpdateException after catching
DbUpdateConcurrencyException (because the latter is a subtype of
You will get an
OptimisticConcurrencyException. Have a look at this.
Now coming to the diffrence.