分组依据 Entity Framework

Group By Entity Framework

我有两个名为 "Orders" 和 "OrderItems" 的表,它们有以下列

订单

订单号, 订购日期, 订单类型,

订单商品

物品编号, 订单号, 价格,

我需要 return OrderId、OrderDate、OrderType 和价格总和。但是我似乎找不到一个很好的例子来说明如何在 linq to entities 中执行此操作。

有人能帮忙吗?

编辑

为了清楚起见,我需要为每个订单显示一行,价格是该订单所有订单项目的总和。

假设有 3 个订单 ID:1,2,3 并且有 3 个订单项目,如下所述:

  • 编号=1,订单编号=1,价格=12
  • 编号=2,订单编号=1,价格=13
  • ID=3,OrderID=3,Price=14

    var carts = (from Cart o in Context.Orders
               join oi in Context.OrderItems on o.Id equals oi.OrderId into orderItems
               select new 
               {
                   o.Id,
                   o.OrderDate,
                   o.OrderType,
                   sum = orderItems.Sum(p=> p.Price)
               }).ToList();
    

上面提到的linq将select求和如下

  • 订单编号:1,Sum:25
  • 订单编号:2,Sum:0
  • 订单编号:3,Sum:14
context.Orders.Include(order => order.OrderItems).Select(order => new {
    OrderId = order.OrderId,
    OrderDate = order.OrderDate,
    Ordertype = order.OrderType,
    TotalPrice = i.OrderItems.Sum(orderItem => orderItem.Price)
});

也许你可以尝试这样的事情。