public DBTransaction BeginTransaction() { SqlTransaction sqlTran = null; if (_dbTransaction == null) { SqlConnection con = new SqlConnection(ConnectionString); con.Open(); if (_database != null && con.Database != _database) { con.ChangeDatabase(_database); } sqlTran = con.BeginTransaction(); } DBTransaction ret = new DBTransaction(sqlTran, _dbTransaction); if (_dbTransaction == null) { _dbTransaction = ret; _dbTransaction.CommitCompletedEvent += new EventHandler(OnTransactionCompleted); _dbTransaction.RollbackCompletedEvent += new EventHandler(OnTransactionCompleted); } return(ret); }
private DBTransaction _transaction; // commit, dispose #endregion Fields #region Constructors public MetadataContext(DBHelper dbHelper) { _previousContext = DataContext.Current; _transaction = dbHelper.BeginTransaction(); _currentContext = new DataContext(string.Empty); _currentContext.SqlContext.CommandTimeout = dbHelper.CommandTimeout; _currentContext.SqlContext.Transaction = _transaction.SqlTran; DataContext.Current = _currentContext; }
protected virtual void Dispose(bool freeManagedResources) { if (freeManagedResources) { // free managed resources if (_currentContext != null) { _currentContext.SqlContext.Transaction = null; _currentContext.Dispose(); _currentContext = null; } DataContext.Current = _previousContext; if (_transaction != null) { _transaction.Dispose(); _transaction = null; } } // free native resources if there are any. }
internal DBTransaction(SqlTransaction sqlTransaction, DBTransaction rootTransaction) { _sqlTransaction = sqlTransaction; _rootTransaction = rootTransaction; }
private void OnTransactionCompleted(object sender, EventArgs e) { _dbTransaction = null; }
internal DBTransaction(SqlTransaction sqlTransaction, DBTransaction rootTransaction) { _sqlTransaction = sqlTransaction; _rootTransaction = rootTransaction; }
private void OnTransactionCompleted(object sender, EventArgs e) { _dbTransaction = null; }
public DBTransaction BeginTransaction() { SqlTransaction sqlTran = null; if(_dbTransaction == null) { SqlConnection con = new SqlConnection(ConnectionString); con.Open(); if (_database != null && con.Database != _database) con.ChangeDatabase(_database); sqlTran = con.BeginTransaction(); } DBTransaction ret = new DBTransaction(sqlTran, _dbTransaction); if(_dbTransaction == null) { _dbTransaction = ret; _dbTransaction.CommitCompletedEvent += new EventHandler(OnTransactionCompleted); _dbTransaction.RollbackCompletedEvent += new EventHandler(OnTransactionCompleted); } return ret; }