Exemplo n.º 1
0
 /// <summary>
 /// Initializes new instance of <see cref="ChildNestedDbContextTransaction"/>.
 /// </summary>
 /// <param name="logger">Logger.</param>
 /// <param name="nestedTransactionManager">Nested transaction manager.</param>
 /// <param name="parent">Parent transaction.</param>
 public ChildNestedDbContextTransaction(
     IDiagnosticsLogger <RelationalDbLoggerCategory.NestedTransaction> logger,
     NestedRelationalTransactionManager nestedTransactionManager,
     NestedDbContextTransaction parent)
     : base(logger, nestedTransactionManager, Guid.NewGuid())
 {
     _parent = parent ?? throw new ArgumentNullException(nameof(parent));
 }
Exemplo n.º 2
0
        internal void Remove(NestedDbContextTransaction transaction)
        {
            if (!_transactions.Contains(transaction))
            {
                return;
            }

            while (_transactions.Count > 0)
            {
                var tx = _transactions.Pop();

                if (tx == transaction)
                {
                    return;
                }

                tx.Dispose();
            }
        }
Exemplo n.º 3
0
        internal async ValueTask RemoveAsync(
            NestedDbContextTransaction transaction)
        {
            if (!_transactions.Contains(transaction))
            {
                return;
            }

            while (_transactions.Count > 0)
            {
                var tx = _transactions.Pop();

                if (tx == transaction)
                {
                    return;
                }

                await tx.DisposeAsync().ConfigureAwait(false);
            }
        }