Ejemplo n.º 1
0
        public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
        {
            try
            {
                await dbContext.BeginTransactionAsync();

                await next();

                await dbContext.CommitTransactionAsync();
            }
            catch (Exception e)
            {
                await dbContext.RollBackTransactionAsync();
            }
        }
Ejemplo n.º 2
0
        public async Task BeginTransactionAsync_ExplicitIsolationLevel_IsolationLevelMatchesExpected()
        {
            var definitionProvider = new DataAnnotationsDefinitionProvider();
            var statementCompiler  = new TransactSqlAdapter(definitionProvider);

            await using (var connection = new SqlConnection(ConfigurationRoot.GetConnectionString("MasterDatabase")))
                await using (var database = new DatabaseContext(connection, statementCompiler))
                {
                    var cancellationToken = CancellationToken.None;
                    await database.OpenSharedConnectionAsync(cancellationToken);

                    await using (var transaction = await database.BeginTransactionAsync(IsolationLevel.RepeatableRead, CancellationToken.None))
                    {
                        Assert.IsFalse(transaction.IsDisposed);
                        Assert.AreEqual(IsolationLevel.RepeatableRead, transaction.IsolationLevel);
                    }
                }
        }