// 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... }