private async Task <GetCustomerInvoicesDbQueryResult> ExecuteReaderAsync(ExecuteReaderRequest request)
        {
            GetCustomerInvoicesDbQueryResult result = null;
            var connection = (DbConnection)_connection;
            var executor   = connection.CreateCommandAsyncExecutor();
            await executor.ExecuteReaderAsync(request, async dataReader =>
            {
                var customers = (await dataReader.ReadResultAsync(128, ReadCustomer, request.CancellationToken));
                var invoices  = (await dataReader.ReadNextResultAsync(128, ReadInvoice, request.CancellationToken));
                result        = new GetCustomerInvoicesDbQueryResult(customers, invoices);
            });

            return(result);
        }
        private GetCustomerInvoicesDbQueryResult ExecuteReader(ExecuteReaderRequest request)
        {
            GetCustomerInvoicesDbQueryResult result = null;
            var executor = _connection.CreateCommandExecutor();

            executor.ExecuteReader(request, dataReader =>
            {
                var customers = dataReader.ReadResult(128, ReadCustomer);
                var invoices  = dataReader.ReadNextResult(128, ReadInvoice);
                result        = new GetCustomerInvoicesDbQueryResult(customers, invoices);
            });

            return(result);
        }