Linq 复合群联接
我想使用linq扩展方法对以下三个表进行组联接 顾客 命令 订单发货信息 客户可以有多个订单,而每个订单只能有一个OrderShippingInfo 所以我的目标是对这3个表进行组连接,并返回一个匿名对象,该对象有一个客户和一个{Order,OrderShippinfo}数组 我知道如何在客户和订单之间进行groupjoin,但不知道如何在集合中添加OrderShippInfoLinq 复合群联接,linq,entity-framework,Linq,Entity Framework,我想使用linq扩展方法对以下三个表进行组联接 顾客 命令 订单发货信息 客户可以有多个订单,而每个订单只能有一个OrderShippingInfo 所以我的目标是对这3个表进行组连接,并返回一个匿名对象,该对象有一个客户和一个{Order,OrderShippinfo}数组 我知道如何在客户和订单之间进行groupjoin,但不知道如何在集合中添加OrderShippInfo Customer.GroupJoin(Order, c=>c.customerID, o=>o.
Customer.GroupJoin(Order, c=>c.customerID, o=>o.CustomerID, (c,o)=> new {c,o})
非常感谢怎么样:
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})
那么:
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})
谢谢,太棒了!您认为这种方法是可以接受的,还是应该分成两个linq语句来澄清问题?对我来说没关系,但这是一种单独的事情。你必须理解代码的作用,所以你必须决定它是可以的还是应该拆分。谢谢!您认为这种方法是可以接受的,还是应该分成两个linq语句来澄清问题?对我来说没关系,但这是一种单独的事情。您必须理解该代码的作用,因此您必须决定它是可以的还是应该拆分。