Understanding concurrency conflicts
An API endpoint can be called by multiple clients at the same time. If the endpoint updates data, the data may be updated by another client before the current client completes the update. When the same entity is updated by multiple clients, it can cause a concurrency conflict, which may result in data loss or inconsistency, or even cause data corruption. In this section, we will discuss how to handle concurrency conflicts in EF Core. You can download the sample project ConcurrencyConflictDemo
from the /samples/chapter7/ConcurrencyConflictDemo
folder in the chapter's GitHub repository.
There are two ways to handle concurrency conflicts:
- Pessimistic concurrency control: This uses database locks to prevent multiple clients from updating the same entity at the same time. When a client tries to update an entity, it will first acquire a lock on the entity. If the lock is acquired successfully, only this client can update the entity, and...