private bool _isDisposed = false; // To detect redundant calls protected virtual void Dispose(bool disposing) { if (_isDisposed) { return; } if (disposing) { // TODO: dispose managed state (managed objects). DbReader?.Dispose(); } // TODO: free unmanaged resources (unmanaged objects) and override a finalizer below. // TODO: set large fields to null. _isDisposed = true; }
public void Dispose() { if (DbReader != null) { DbReader.Dispose(); DbReader = null; } if (_command != null) { _command.Dispose(); _command = null; } if (_connection != null) { _connection.Dispose(); _connection = null; } }