entity framework进行一对多的联合查询

以下示例针对 SalesOrderHeader 表和 SalesOrderDetail 表执行 GroupJoin 以查找每个客户的订单数。组联接等效于左外部联接,它返回第一个(左侧)数据源的每个元素(即使其他数据源中没有关联元素)。

1 using (AdventureWorksEntities AWEntities = new AdventureWorksEntities())
2 {
3 ObjectQuery<SalesOrderHeader> orders = AWEntities.SalesOrderHeader;
4 ObjectQuery<SalesOrderDetail> details = AWEntities.SalesOrderDetail;
5
6 var query =
7 from order in orders
8 join detail in details
9 on order.SalesOrderID
10 equals detail.SalesOrderID into orderGroup
11 select new
12 {
13 CustomerID = order.SalesOrderID,
14 OrderCount = orderGroup.Count()
15 };
16
17 foreach (var order in query)
18 {
19 Console.WriteLine("CustomerID: {0} Orders Count: {1}",
20 order.CustomerID,
21 order.OrderCount);
22 }
23 }
24
25  
原文地址:https://www.cnblogs.com/xuesky/p/1863613.html