在linq中使用左联接查询 [英] Query with left join in linq
本文介绍了在linq中使用左联接查询的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
你好,我想在linq中进行查询,但我想我需要一些帮助...
Hello I 'm trying to do a query in linq but I think I need some help...
我有两个表:langAvailable和Translations 即使没有翻译,我也要一个线"
I have two table: langAvailable and Translations I want a 'line' even if theres no translation recorded
例如:
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}
如果翻译表中没有翻译,这只会给我一条记录... 知道我怎么能得到吗?
This only give me one record if there s no translation in the translate table... Any idea how I can get that?
感谢
推荐答案
您可以使用组联接"来执行您要尝试执行的操作.试试这个:
You can use Group Join to do what you're trying to do. Try this:
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)
这篇关于在linq中使用左联接查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文