private IDbContextTransaction BeginTransactionWithNoPreconditions(IsolationLevel isolationLevel, CancellationToken cancellationToken = default(CancellationToken)) { var dbTransaction = ((FbConnection)DbConnection).BeginTransaction(isolationLevel); CurrentTransaction = new FbRelationalTransaction(this, dbTransaction, Dependencies.TransactionLogger, true); Dependencies.TransactionLogger.TransactionStarted(this, dbTransaction, CurrentTransaction.TransactionId, DateTimeOffset.UtcNow); return(CurrentTransaction); }
public override IDbContextTransaction UseTransaction(DbTransaction transaction) { if (transaction == null) { if (CurrentTransaction != null) { CurrentTransaction = null; } } else { if (CurrentTransaction != null) { throw new InvalidOperationException(RelationalStrings.TransactionAlreadyStarted); } Open(); CurrentTransaction = new FbRelationalTransaction(this, transaction, Dependencies.TransactionLogger, transactionOwned: false); Dependencies.TransactionLogger.TransactionUsed(this, transaction, CurrentTransaction.TransactionId, DateTimeOffset.UtcNow); } return(CurrentTransaction); }