Working with transactions
Every time you call the SaveChanges
method, an implicit transaction is started so that if something goes wrong, it will automatically roll back all the changes. If the multiple changes within the transaction succeed, then the transaction and all changes are committed.
Transactions maintain the integrity of your database by applying locks to prevent reads and writes while a sequence of changes is occurring.
Transactions are ACID, which is an acronym explained in the following list:
- A is for atomic. Either all the operations in the transaction commit, or none of them do.
- C is for consistent. The state of the database before and after a transaction is consistent. This is dependent on your code logic; for example, when transferring money between bank accounts, it is up to your business logic to ensure that if you debit $100 in one account, you credit $100 in the other account.
- I is for isolated. During a transaction, changes are...