Browse Source

Ignore SaveChangesAsync if the uow has been rolled back.

Resolve #9263
pull/9273/head
maliming 5 years ago
parent
commit
f2b66e75d1
  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