复合组加入

时间:2012-04-27 15:55:28

标签: linq entity-framework

我想使用linq扩展方法

与以下三个表进行组连接

Custumer 订购 OrderShippingInfo

客户可以拥有多个订单,每个订单只能有一个OrderShippingInfo。

所以我的目标是对这3个表进行组连接,并返回一个匿名对象,该对象有一个Customer和一个{Order,OrderShippinfo}数组。

我知道如何在客户和订单之间进行分组连接,但我不知道如何在集合中添加OrderShippInfo

     Customer.GroupJoin(Order, c=>c.customerID, o=>o.CustomerID, (c,o)=> new {c,o})

非常感谢

1 个答案:

答案 0 :(得分:1)

怎么样:

 Customer.GroupJoin(Order.Join(OrderShippinInfo,
                               o=>o.OrderID,
                               s=>s.OrderID,
                               (o, s) => new { Order = o, ShippingInfo = s}),
                    c=>c.customerID,
                    oi=>oi.Order.CustomerID,
                    (c,oi)=> new {c,oi})