public async Task CommitTransactionAsync()
        {
            if (DbContextTransaction != null)
            {
                await DbContextTransaction.CommitAsync();

                DbContextTransaction = null;
            }
        }
Пример #2
0
        public async Task CommitAsync()
        {
            await DbContextTransaction.CommitAsync(CancellationTokenProvider.Token);

            foreach (var dbContext in AttendedDbContexts)
            {
                if (dbContext.As <DbContext>().HasRelationalTransactionManager())
                {
                    continue; //Relational databases use the shared transaction
                }

                await dbContext.Database.CommitTransactionAsync(CancellationTokenProvider.Token);
            }
        }
Пример #3
0
    public async Task CommitAsync()
    {
        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.CommitTransactionAsync(CancellationTokenProvider.Token);
        }

        await DbContextTransaction.CommitAsync(CancellationTokenProvider.Token);
    }