public override DbTransaction BeginTransaction(IsolationLevel isolevel) { // Take the transaction lock before beginning the // transaction to avoid a deadlock AssertThreadOwner(); _transactionLock.OpenWriter(); return(new SQLiteTransactionED <TConn>(_cn.BeginTransaction(isolevel), _transactionLock)); }
public override int ExecuteNonQuery() { if (_transaction != null) { try { _transaction.BeginCommand(this); return(InnerCommand.ExecuteNonQuery()); } finally { _transaction.EndCommand(); } } else { try { _txnlock.OpenWriter(); _txnlock.BeginCommand(this); return(InnerCommand.ExecuteNonQuery()); } finally { _txnlock.EndCommand(); _txnlock.CloseWriter(); } } }