2012-06-06 66 views
1

我想知道如果有人能幫助LINQ LEFT JOIN我不是一個領域?我有SQL工作,但不能將其轉換爲LINQ查詢

我有一個簡單的SQL查詢它是這樣的。

SELECT * FROM ITEM INNER JOIN CODES ON ITEM.ITEMID = CODES.ITEMID AND 
     ITEM.CATID = CODES.CATID 

這個偉大的工程,所以我創建了下面的查詢在LINQ

from i in Item join c in codes 
     on new { i.itemid, i.catid } equals new { c.itemid, c.catid } 

偉大的作品,但我意識到我真正需要的留在原地的INNER JOIN的JOIN。因此,SQL,現在的偉大工程!是: - (左通知參加)

SELECT * FROM ITEM LEFT JOIN CODES ON ITEM.ITEMID = CODES.ITEMID AND 
     ITEM.CATID = CODES.CATID 

所以現在一切似乎工作,我回去我需要使用SQL數據我無法弄清楚如何做左連接在LINQ,尤其是如何做一個左連接上超過100場 - 在我的情況的itemid和CATID

我不知道是否有人能伸出援助之手,我堅持:-)

回答

2

我想這是你需要低着頭方向:

from i in Item 
    join c in codes on new { i.itemid, i.catid } equals new { c.itemid, c.catid } 
    into grouped 
    from g in grouped.DefaultIfEmpty() 
    select new 
    { 
     ItemId = c.itemid, 
     CatItemId = g != null ? g.itemid : "Empty" 
    }; 
+0

感謝> 到JoinedEmpDept 從部門,這真是棒極了 – Martin