public ISqlScriptTransaction StartTransaction()
        {
            if (_currentTransaction == null)
            {
                _currentTransaction = new PostgreSqlTransaction(_currentConnection);
                return _currentTransaction;
            }

            return new PostgreSqlTransactionWrapper(_currentTransaction);
        }
        public void Dispose()
        {
            if (_currentTransaction != null)
            {
                _currentTransaction.Dispose();
                _currentTransaction = null;
            }

            if (_currentConnection != null)
            {
                if (_currentConnection.State == ConnectionState.Open)
                {
                    _currentConnection.Close();
                }

                _currentConnection.Dispose();
                _currentConnection = null;
            }
        }
 public PostgreSqlTransactionWrapper(PostgreSqlTransaction parentTransaction)
 {
     _parentTransaction = parentTransaction;
 }