【问题标题】:EF Sum nested list values after group byEF Sum 分组后的嵌套列表值
【发布时间】:2021-05-22 16:30:57
【问题描述】:

所以我有一张票的列表,我想按客户对它们进行分组,然后将这些票的票务操作的所有价格相加。

            query2 = query.GroupBy(x => new {x.Customer.Id, x.Customer.BusinessName}).Select(x => new TicketStatisticsRow {
                Field = x.Key.BusinessName,
                Tickets = x.Count(),
                TotalPrice = x.Sum(t => t.TicketOperations.Sum(to => to.Price))
            });

除了尝试 TotalPrice 的总和之外,我尝试了x.SelectMany(e => e.TicketOperations).Sum(x=> x.Price) 这两种解决方案都无法在本地评估。在这种情况下,最好的方法是什么?

机票等级参考:

 public class Ticket {
        public Customer Customer { get; set; }
        public ICollection<TicketOperation> TicketOperations { get; set; }

        public class TicketOperation {
            public decimal Price { get; set; }
        }
    }

【问题讨论】:

    标签: entity-framework asp.net-core entity-framework-core asp.net-core-3.1


    【解决方案1】:

    你会想要这样的东西

    query2 = query.GroupBy(x=>x.Customer.Id).ToDictionary(x=>x.Key, x=> new 
             TicketStatisticsRow {
                Field = x.Key.BusinessName,
                Tickets = x.Count(),
                TotalPrice = x.Sum(t => t.TicketOperations.Sum(to => to.Price))
            });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-29
      • 1970-01-01
      • 1970-01-01
      • 2023-01-13
      • 1970-01-01
      • 2011-05-18
      • 1970-01-01
      • 2016-02-22
      相关资源
      最近更新 更多