public async Task RollbackTransactionAsync()
        {
            if (DbContextTransaction != null)
            {
                await DbContextTransaction.RollbackAsync();

                DbContextTransaction = null;
            }
        }
Exemplo n.º 2
0
        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));
            }
        }
Exemplo n.º 3
0
    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));
    }