Browse Source

Merge pull request #9273 from abpframework/maliming/Uow-Rollback

Ignore SaveChangesAsync if the uow has been rolled back.
pull/9274/head
Halil İbrahim Kalkan 5 years ago
committed by GitHub
parent
commit
8c83cbdf74
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 5
      framework/src/Volo.Abp.Uow/Volo/Abp/Uow/UnitOfWork.cs
  2. 3
      framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo/Abp/EntityFrameworkCore/Transactions/Transaction_Tests.cs

5
framework/src/Volo.Abp.Uow/Volo/Abp/Uow/UnitOfWork.cs

@ -89,6 +89,11 @@ namespace Volo.Abp.Uow
public virtual async Task SaveChangesAsync(CancellationToken cancellationToken = default)
{
if (_isRolledback)
{
return;
}
foreach (var databaseApi in GetAllActiveDatabaseApis())
{
if (databaseApi is ISupportsSavingChanges)

3
framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo/Abp/EntityFrameworkCore/Transactions/Transaction_Tests.cs

@ -59,6 +59,9 @@ namespace Volo.Abp.EntityFrameworkCore.Transactions
await _personRepository.InsertAsync(new Person(personId, "Adam", 42));
await _unitOfWorkManager.Current.RollbackAsync();
//Will ignore this call.
await _unitOfWorkManager.Current.SaveChangesAsync();
});
var person = await _personRepository.FindAsync(personId);

Loading…
Cancel
Save