Browse Source

Merge pull request #18913 from abpframework/auto-merge/prerel-8-1/2458

Merge branch dev with prerel-8.1
pull/18933/head
maliming 2 years ago
committed by GitHub
parent
commit
783619b4cf
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 10
      docs/en/Concurrency-Check.md

10
docs/en/Concurrency-Check.md

@ -29,6 +29,8 @@ public interface IHasConcurrencyStamp
* While a new record is **creating**, if the entity implements the `IHasConcurrencyStamp` interface, ABP Framework automatically sets a unique value to the **ConcurrencyStamp** property.
* While a record is **updating**, ABP Framework compares the **ConcurrencyStamp** property of the entity with the provided **ConcurrencyStamp** value by the user and if the values match, it automatically updates the **ConcurrencyStamp** property with the new unique value. If there is a mismatch, `AbpDbConcurrencyException` is thrown.
> If there is a unit of work, you need to call the [SaveChangesAsync](./Unit-Of-Work.md#savechangesasync) method to get the generated `ConcurrencyStamp` when creating or updating.
**Example: Applying Concurrency Control for the Book Entity**
Implement the `IHasConcurrencyStamp` interface for your entity:
@ -74,8 +76,8 @@ public class BookAppService : ApplicationService, IBookAppService
book.ConcurrencyStamp = input.ConcurrencyStamp;
//set other input values to the entity ...
await BookRepository.UpdateAsync(book);
//use autoSave: true to get the latest ConcurrencyStamp
await BookRepository.UpdateAsync(book, autoSave: true);
}
}
```
@ -134,8 +136,8 @@ public class BookAppService : ApplicationService, IBookAppService
book.ConcurrencyStamp = input.ConcurrencyStamp;
//set other input values to the entity ...
await BookRepository.UpdateAsync(book);
//use autoSave: true to get the latest ConcurrencyStamp
await BookRepository.UpdateAsync(book, autoSave: true);
}
}
```

Loading…
Cancel
Save