public DataTransaction BeginTransaction(DataTransactionIsolation isolation = DataTransactionIsolation.ReadCommitted) { DataTransaction transaction = null; // ReSharper disable once AccessToModifiedClosure transaction = new DataTransaction(mConnection, () => PopTransaction(transaction), isolation); mTransaction.Push(transaction); return(transaction); }
internal DataTransaction([NotNull] IDbConnection connection, [NotNull] Action disposeAction, DataTransactionIsolation isolation) { if (connection == null) { throw new ArgumentNullException(nameof(connection)); } if (disposeAction == null) { throw new ArgumentNullException(nameof(disposeAction)); } mTransaction = connection.BeginTransaction((IsolationLevel)(int)isolation); mDisposeAction = disposeAction; }