/// <summary> /// Initializes new instance of <see cref="NestedRelationalTransactionManager"/>. /// </summary> /// <param name="logger">Logger.</param> /// <param name="innerManager">"Real" transaction manager, i.e. the one of the current database provider.</param> public NestedRelationalTransactionManager( IDiagnosticsLogger <RelationalDbLoggerCategory.NestedTransaction> logger, IRelationalTransactionManager innerManager) { _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _innerManager = innerManager ?? throw new ArgumentNullException(nameof(innerManager)); _transactions = new Stack <NestedDbContextTransaction>(); }
/// <summary> /// Initializes new instance of <see cref="RootNestedDbContextTransaction"/>. /// </summary> /// <param name="logger">Logger.</param> /// <param name="nestedTransactionManager">Nested transaction manager.</param> /// <param name="innerManager">Inner transaction manager.</param> /// <param name="tx">The real transaction.</param> /// <param name="transactionId">The transaction id.</param> public RootNestedDbContextTransaction( IDiagnosticsLogger <RelationalDbLoggerCategory.NestedTransaction> logger, NestedRelationalTransactionManager nestedTransactionManager, IRelationalTransactionManager innerManager, IDbContextTransaction tx, Guid?transactionId) : base(logger, nestedTransactionManager, transactionId ?? tx?.TransactionId ?? throw new ArgumentNullException(nameof(tx))) { _innerManager = innerManager ?? throw new ArgumentNullException(nameof(innerManager)); _innerTx = tx; }