diff --git a/framework/src/Volo.Abp.Uow/Volo/Abp/Uow/UnitOfWork.cs b/framework/src/Volo.Abp.Uow/Volo/Abp/Uow/UnitOfWork.cs index 878c03d629..7b4f8fda33 100644 --- a/framework/src/Volo.Abp.Uow/Volo/Abp/Uow/UnitOfWork.cs +++ b/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) diff --git a/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo/Abp/EntityFrameworkCore/Transactions/Transaction_Tests.cs b/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo/Abp/EntityFrameworkCore/Transactions/Transaction_Tests.cs index 7d89da1a08..143aff73c0 100644 --- a/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo/Abp/EntityFrameworkCore/Transactions/Transaction_Tests.cs +++ b/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);