// methods
 protected override void Dispose(bool disposing)
 {
     if (disposing)
     {
         if (!Disposed)
         {
             _pooledConnection.DecrementReferenceCount();
         }
     }
     base.Dispose(disposing);
 }
 protected override void Dispose(bool disposing)
 {
     if (disposing)
     {
         if (!Disposed)
         {
             _pooledConnection.DecrementReferenceCount();
             if (_pooledConnection.ReferenceCount == 0)
             {
                 _connectionPool.ReleaseConnection(_pooledConnection);
             }
         }
         Disposed          = true;
         _pooledConnection = null;
         _connectionPool   = null;
     }
     // don't call base.Dispose here because we don't want the underlying
     // connection to get disposed...
 }