在LINQ中分组很多关系

时间:2014-07-23 01:31:47

标签: c# sql linq grouping

我有以下代码:

var preGroup =                
    from l in e.WorkOrderRequests
    join w in e.WorkOrders on l.WorkOrderRequestKey equals w.WorkOrderRequestKey into lw                
    from l2 in lw.DefaultIfEmpty()
    select new { l.WorkOrderRequestStatusKey, 
                 l.WorkOrderRequest_Status.Status, 
                 w.Property.Address.StateKey,
                 w.Property.Address.MetroKey };

关系结构是工作订单请求可以有多个工作订单,因此它是一对多的关系。我想做一个选择,这样每个工作订单请求都会显示与附加工作订单一样多的次数。但是,如果没有附加工作订单,它仍然应该出现。所以左外连接是有意义的。上面的选择不起作用,但它显示了我想要选择的数据。我需要将这些数据分组:

var workOrderRequests = 
    (from l in preGroup.ToList()
     group l by new { l.WorkOrderRequestStatusKey, l.Status, l.StateKey, l.MetroKey } into g
     select new DashboardView
     {
         StatusKey = g.Key.WorkOrderRequestStatusKey,
         StatusName = g.Key.Status,
         StateKey = g.Key.StateKey,
         MetroKey = g.Key.MetroKey,
         Count = g.Count()
     });

我无法进行分组,因为我的preGroup查询无效。我已经能够为其他事情做到这一点,但这些都是一对一的关系。非常感谢任何帮助。

0 个答案:

没有答案