在linq中使用左联接查询 [英] Query with left join in linq

查看:94
本文介绍了在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆