public override async Task <IEnumerable <T> > ExecuteReaderAsync <T>(ICommandBuilder commandBuilder, CancellationToken cancellationToken)
 {
     return(await CacheOrNot(commandBuilder, async (buffer) =>
     {
         var results = await InnerHandler.ExecuteReaderAsync <T>(commandBuilder, cancellationToken);
         if (buffer)
         {
             results = results.ToList();
         }
         return results;
     }));
 }
        public override async Task <IEnumerable <T> > ExecuteReaderAsync <T>(ICommandBuilder commandBuilder, CancellationToken cancellationToken)
        {
            var stopwatch = Stopwatch.StartNew();

            try
            {
                var results = await InnerHandler.ExecuteReaderAsync <T>(commandBuilder, cancellationToken);

                return(results);
            }
            finally
            {
                var parameters = commandBuilder.Parameters;
                _logger.LogDebug("query: {commandText} parameters: {parameters} elapsed: {ElapsedMilliseconds}ms",
                                 commandBuilder.CommandText, parameters, stopwatch.ElapsedMilliseconds);
            }
        }