public async Task RollbackTransactionAsync() { if (DbContextTransaction != null) { await DbContextTransaction.RollbackAsync(); DbContextTransaction = null; } }
public async Task RollbackAsync(CancellationToken cancellationToken) { await DbContextTransaction.RollbackAsync(CancellationTokenProvider.FallbackToProvider(cancellationToken)); foreach (var dbContext in AttendedDbContexts) { if (dbContext.As <DbContext>().HasRelationalTransactionManager()) { continue; //Relational databases use the shared transaction } await dbContext.Database.RollbackTransactionAsync(CancellationTokenProvider.FallbackToProvider(cancellationToken)); } }
public async Task RollbackAsync(CancellationToken cancellationToken) { foreach (var dbContext in AttendedDbContexts) { if (dbContext.As <DbContext>().HasRelationalTransactionManager() && dbContext.Database.GetDbConnection() == DbContextTransaction.GetDbTransaction().Connection) { continue; //Relational databases use the shared transaction if they are using the same connection } await dbContext.Database.RollbackTransactionAsync(CancellationTokenProvider.FallbackToProvider(cancellationToken)); } await DbContextTransaction.RollbackAsync(CancellationTokenProvider.FallbackToProvider(cancellationToken)); }