public async Task <DynamicDataReader> ExecuteReaderAsync(CancellationToken cancellationToken, CommandBehavior behavior = CommandBehavior.Default) { PrepareCommand(); await OpenConnectionAsync(cancellationToken); var reader = await _command.ExecuteReaderAsync(behavior, cancellationToken); return(_reader = new DynamicDataReader(reader)); }
void Dispose(bool disposing) { if (!_disposed && disposing) { using (var conn = _command.Connection) using (var command = _command) using (var reader = _reader) { if (_reader != null) { if (!_reader.IsClosed) { _reader.Close(); } _reader = null; } if (conn.State != ConnectionState.Closed) { conn.Close(); } } } _disposed = true; }