diff --git a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Uow/EntityFrameworkCore/EfCoreTransactionApi.cs b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Uow/EntityFrameworkCore/EfCoreTransactionApi.cs index 5e6669a6f5..4b93c2f96b 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Uow/EntityFrameworkCore/EfCoreTransactionApi.cs +++ b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Uow/EntityFrameworkCore/EfCoreTransactionApi.cs @@ -30,8 +30,6 @@ namespace Volo.Abp.Uow.EntityFrameworkCore public async Task CommitAsync() { - await DbContextTransaction.CommitAsync(CancellationTokenProvider.Token); - foreach (var dbContext in AttendedDbContexts) { if (dbContext.As().HasRelationalTransactionManager() && @@ -42,6 +40,8 @@ namespace Volo.Abp.Uow.EntityFrameworkCore await dbContext.Database.CommitTransactionAsync(CancellationTokenProvider.Token); } + + await DbContextTransaction.CommitAsync(CancellationTokenProvider.Token); } public void Dispose() @@ -51,8 +51,6 @@ namespace Volo.Abp.Uow.EntityFrameworkCore public async Task RollbackAsync(CancellationToken cancellationToken) { - await DbContextTransaction.RollbackAsync(CancellationTokenProvider.FallbackToProvider(cancellationToken)); - foreach (var dbContext in AttendedDbContexts) { if (dbContext.As().HasRelationalTransactionManager() && @@ -63,6 +61,8 @@ namespace Volo.Abp.Uow.EntityFrameworkCore await dbContext.Database.RollbackTransactionAsync(CancellationTokenProvider.FallbackToProvider(cancellationToken)); } + + await DbContextTransaction.RollbackAsync(CancellationTokenProvider.FallbackToProvider(cancellationToken)); } } }