private async Task <CommandWithDataReader> ExecuteReaderAsync(DbCommand command, CommandBehavior commandBehavior, CancellationToken token)
        {
            DbDataReader reader;

            try {
                reader = await driver.ExecuteReaderAsync(session, command, commandBehavior, token).ConfigureAwait(false);
            }
            catch {
                await command.DisposeAsync().ConfigureAwait(false);

                throw;
            }
            return(new CommandWithDataReader(command, reader));
        }