/// <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)); }
/// <summary> /// Initializes new instance of <see cref="NestedDbContextTransaction"/>. /// </summary> /// <param name="logger">Logger.</param> /// <param name="nestedTransactionManager">Nested transaction manager.</param> /// <param name="transactionId">The transaction id.</param> protected NestedDbContextTransaction( IDiagnosticsLogger <RelationalDbLoggerCategory.NestedTransaction> logger, NestedRelationalTransactionManager nestedTransactionManager, Guid transactionId) { DiagnosticsLogger = logger ?? throw new ArgumentNullException(nameof(logger)); NestedTransactionManager = nestedTransactionManager ?? throw new ArgumentNullException(nameof(nestedTransactionManager)); TransactionId = transactionId; }
/// <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; }