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); } } } }
protected T DoInSession <T>(Block <T> block) { IDataSessionManager sessionManager = Resolve <IDataSessionManager>(); using (IDataSession session = sessionManager.CreateSession(DatabaseName)) { IDataConnection connection = null; try { connection = session.OpenConnection(); return(block()); } finally { if (connection != null) { connection.Dispose(); } } } }
public IDataConnection OpenConnection() { return(new ConnectionWrapper(_session.OpenConnection())); }