2012-11-21 84 views
1

你好我是試圖做在LINQ查詢,但我想我需要一些幫助......查詢與左LINQ中加入

我有兩個表:langAvailable和翻譯 我希望有一個‘行’,甚至如果世界上沒有翻譯記錄

例如:

  LangId: 1 TranslationID:10 Translation: Hello 
      LangId: 2 TranslationID:10 Translation: Bonjour 
      LangId: 1 TranslationID:11 Translation: Thanks 
      LangId: 2 TranslationID:11 Translation: 

這是我做的:

Dim query = From c In db.LangAvailable _ 
      Join o In db.Translate On c.ID_Lang Equals o.Lang_ID _ 
      Where o.TranslationID = 243 _ 
      Select New With {c.LangId, o.Translation} 

這隻給我一個記錄,如果沒有在翻譯表中的翻譯... 任何想法,我怎麼能得到它?

Thanx

回答

2

您可以使用Group Join來做你想做的事情。試試這個:

Dim query = From c In db.LangAvailable _ 
       Group Join o In db.Translate On c.ID_Lang Equals o.Lang_ID Into Group _ 
       From o In Group.DefaultIfEmpty() _ 
       Where o.TranslationId = 243 _ 
       Select LangId = c.ID_Lang, Translation = If(o.Translation Is Nothing, Nothing, o.Translation)