1

こんにちは、linq でクエリを実行しようとしていますが、助けが必要だと思います...

langAvailable と Translations の 2 つのテーブルがあります。翻訳が記録されていなくても「行」が必要です

例えば:

           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}

翻訳テーブルに翻訳がない場合、これは私に1つのレコードしか与えません...どうすればそれを取得できますか?

ありがとう

4

1 に答える 1

2

グループ参加を使用して、やろうとしていることを行うことができます。これを試して:

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)
于 2012-11-21T18:21:11.097 に答える