public ITransaction BeginTransaction() { EnsureOpen(); _connection.BeginTransaction(); return(new NullTransaction()); }
public static NonQueryResult ExecuteNonQuery(IDataConnection connection, IDataCommandTemplate commandTemplate, DataParameterValue parameterValue, bool collectPrimaryKey) { if (connection.State == ConnectionState.Closed) { connection.Open(); } using (IDataCommand command = connection.CreateCommand(commandTemplate, parameterValue)) { using (IDbTransaction transaction = connection.BeginTransaction()) { command.Transaction = transaction; int rowsAffected = command.ExecuteNonQuery(); if (rowsAffected != 1) { throw new DataException("Number of rows affected = " + rowsAffected + " expected 1"); } object primaryKey; if (collectPrimaryKey) { DataCommandTemplate identity = new DataCommandTemplate(CommandType.Text, "SELECT @@IDENTITY Id"); using (IDbCommand primaryKeyCommand = connection.CreateCommand(identity, parameterValue)) { primaryKeyCommand.Transaction = transaction; primaryKey = primaryKeyCommand.ExecuteScalar(); } } else { primaryKey = null; } transaction.Commit(); return(new NonQueryResult(primaryKey, rowsAffected)); } } }
public ITransaction BeginTransaction() { EnsureOpen(); if (_session == null) { _session = _repository.CreateSession(); IDataConnection connection = _session.OpenConnection(); ITransaction transaction = connection.BeginTransaction(); _repository.OnBeginTransaction(_session); return(transaction); } return(new NullTransaction()); }
protected T DoInTransaction <T>(Block <T> block) { IDataSessionManager sessionManager = Resolve <IDataSessionManager>(); using (IDataSession session = sessionManager.CreateSession(DatabaseName)) { using (IDataConnection connection = session.OpenConnection()) { using (ITransaction transaction = connection.BeginTransaction()) { OnBeginTransaction(session); T value = block(); transaction.Commit(); return(value); } } } }
public Task <IDataConnectionTransaction> BeginTransaction(IsolationLevel isolationLevel) { return(_connection.BeginTransaction(isolationLevel)); }