Beispiel #1
0
            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());
            }
Beispiel #2
0
        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);
                    }
                }
            }
        }
Beispiel #3
0
        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();
                    }
                }
            }
        }
Beispiel #4
0
 public IDataConnection OpenConnection()
 {
     return(new ConnectionWrapper(_session.OpenConnection()));
 }