/// <summary> /// Instructs the <see cref="IUnitOfWork"/> instance to begin a new transaction /// with the specified isolation level. /// </summary> /// <param name="isolationLevel">One of the values of <see cref="IsolationLevel"/> /// that specifies the isolation level of the transaction.</param> /// <returns></returns> public ITransaction BeginTransaction(IsolationLevel isolationLevel) { Guard.Against <InvalidOperationException>(_transaction != null, "Cannot begin a new transaction while an existing transaction is still running. " + "Please commit or rollback the existing transaction before starting a new one."); _transaction = new NHTransaction(_session.BeginTransaction(isolationLevel)); _transaction.TransactionCommitted += TransactionCommitted; _transaction.TransactionRolledback += TransactionRolledback; return(_transaction); }
/// <summary> /// Releases the current transaction in the <see cref="NHUnitOfWork"/> instance. /// </summary> private void ReleaseCurrentTransaction() { if (_transaction != null) { _transaction.TransactionCommitted -= TransactionCommitted; _transaction.TransactionRolledback -= TransactionRolledback; _transaction.Dispose(); } _transaction = null; }
/// <summary> /// Disposes off managed resources used by the NHUnitOfWork instance. /// </summary> /// <param name="disposing"></param> private void Dispose(bool disposing) { if (!disposing) { return; } if (_disposed) { return; } if (_transaction != null) { _transaction.Dispose(); _transaction = null; } if (_session != null) { _session.Dispose(); _session = null; } _disposed = true; }
/// <summary> /// Instructs the <see cref="IUnitOfWork"/> instance to begin a new transaction /// with the specified isolation level. /// </summary> /// <param name="isolationLevel">One of the values of <see cref="IsolationLevel"/> /// that specifies the isolation level of the transaction.</param> /// <returns></returns> public ITransaction BeginTransaction(IsolationLevel isolationLevel) { Guard.Against<InvalidOperationException>(_transaction != null, "Cannot begin a new transaction while an existing transaction is still running. " + "Please commit or rollback the existing transaction before starting a new one."); _transaction = new NHTransaction(_session.BeginTransaction(isolationLevel)); _transaction.TransactionCommitted += TransactionCommitted; _transaction.TransactionRolledback += TransactionRolledback; return _transaction; }
/// <summary> /// Disposes off managed resources used by the NHUnitOfWork instance. /// </summary> /// <param name="disposing"></param> private void Dispose(bool disposing) { if (!disposing) return; if (_disposed) return; if (_transaction != null) { _transaction.Dispose(); _transaction = null; } if (_session != null) { _session.Dispose(); _session = null; } _disposed = true; }