2012-04-27 65 views
1

我想做的一組使用LINQ擴展方法複合組加入

Custumer 爲了與以下三個表加入 OrderShippingInfo

Custumer可以有很多訂單和每個訂單隻能有一個OrderShippingInfo。

因此,我的目標是對這3個表進行組連接,並返回一個匿名對象,該對象具有一個Customer和一個{Order,OrderShippinfo}數組。

我知道該怎麼做客戶和訂單之間的羣組加入,但我不知道如何添加OrderShippInfo集合中

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

非常感謝

回答

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}) 
+0

非常感謝!你會說這種方法是可以接受的嗎?或者爲了清晰起見,它應該分解爲兩個linq語句? – c830 2012-04-27 16:51:03

+0

對我來說沒問題,但它是一種個人的東西。你必須明白代碼的作用,所以你必須決定是否可以分離。 – MarcinJuraszek 2012-04-27 17:12:24