向Linq查询添加更多参数



我使用此查询按日期计算订单数量。我试图再添加一个参数来计算每个订单的总产品数,但我无法让它在atm上工作。

这是用于返回3个参数(Date、TotalOrders和TotalProducts)列表的方法的重要部分。我使用Linq查询来获得每个日期的总订单列表,我想知道如何将我的第三个参数添加到列表"TotalProducts"中,以及我是否可以在查询中再添加一个搜索参数。下面的foreach部分不起作用,它将返回一个TotalProducts列表,但列表中技术项目的CreationDate将相同。我也有一种感觉,把前臂放在前臂里似乎不是最好的:

 var orders = _orderService.SearchOrderStatistics(startDateValue, endDateValue, orderStatus,
                paymentStatus, shippingStatus, model.CustomerEmail, model.OrderGuid);

            var result = orders.Where(o => o.PaymentStatus == PaymentStatus.Paid)
                    .GroupBy(g => g.CreatedOnUtc.Date.ToString("yyyyMMdd"))
                    .Select(s => new { Date = s.Key, Count = s.Count() });

            List<GCOrdersModel> TotalOrdersPaid = new List<GCOrdersModel>();

               foreach (var g in result)
                    {
                        foreach (var opv in orders)
                        {
                            GCOrdersModel _Om = new GCOrdersModel(g.Date, g.Count.ToString(), opv.OrderProductVariants.Count.ToString());
                            TotalOrdersPaid.Add(_Om);
                        }
                    }
            return TotalOrdersPaid;

要访问每个订单的总产品,我必须使用OrderProductVariants.Count.ToString()

我可以将此参数添加到查询中吗?

Thx

你可以试试这个:

return orders.Where(o => o.PaymentStatus == PaymentStatus.Paid)
             .GroupBy(g => g.CreatedOnUtc.Date.ToString("yyyyMMdd"))
             .Select(s => new GCOrdersModel() 
                          { 
                              Date = s.Key, 
                              Count = s.Count(),
                              OpvCount = opv.OrderProductVariants.Count.ToString()
                          })
             .ToList();

return orders.Where(o => o.PaymentStatus == PaymentStatus.Paid)
             .GroupBy(g => g.CreatedOnUtc.Date.ToString("yyyyMMdd"))
             .Select(s => new GCOrdersModel(s.Key, s.Count, opv.OrderProductVariants.Count.ToString()))
             .ToList();

这样,您就不必再次迭代您的结果。它会自动创建您的GCOrdersModel列表。

编辑

这行得通吗?

return orders.Where(o => o.PaymentStatus == PaymentStatus.Paid)
                 .GroupBy(g => g.CreatedOnUtc.Date.ToString("yyyyMMdd"))
                 .Select(s => new GCOrdersModel() 
                              { 
                                  Date = s.Key, 
                                  Count = s.Count(),
                                  OpvCount = s.OrderProductVariants.Count.ToString()
                              })
                 .ToList();

return orders.Where(o => o.PaymentStatus == PaymentStatus.Paid)
                 .GroupBy(g => g.CreatedOnUtc.Date.ToString("yyyyMMdd"))
                 .Select(s => new GCOrdersModel(s.Key, s.Count(), s.OrderProductVariants.Count.ToString()))
                 .ToList();

怎么样:

var opvCount =
    opv
        .OrderProductVariants
        .Count
        .ToString();
return
    orders
        .Where(o => o.PaymentStatus == PaymentStatus.Paid)
        .GroupBy(g => g.CreatedOnUtc.Date.ToString("yyyyMMdd"))
        .Select(s => new
        {
            Date = s.Key,
            Count = s.Count()
        })
        .Select(x =>
            new GCOrdersModelg(x.Date, g.Count.ToString(), opvCount));

相关内容

  • 没有找到相关文章

最新更新