Int? и сравнение int когда LEFT OUTER JOIN в выпуске Linq

Я работаю над проектом WinForms, который требует использованияLinq-To-Sql, Я смог создать свой DataContext, используяSqlMetal инструмент, и сделать несколько запросов. Но сейчас у меня есть проблема, которую я не смог решить.

Я пытаюсь сделатьLEFT OUTER JOIN следующим образом:

MyDatabase db = new MyDatabase(...);

 var query = from p in db.ParentTable
             join t in db.ChildTable on new {A = p.child_ID, B = p.OtherID}
             equals new {A = t.ID, B = t.OtherID} into j1
             from c in j1.DefaultIfEmpty()
             select new
             {
                  ...
             };

Когда я пишу этот запрос, во время компиляции возникает ошибка вjoin слово:

The type of one of the expressions in the join clause is incorrect. Type inference failed in the call to 'GroupJoin'

Я знаю, что эта ошибка вызвана сравнениемp.child_ID а такжеt.ID посколькуp.child_ID являетсяint? а такжеt.ID являетсяint, Но,How can I solve this? How can I perform the LEFT OUTER JOIN without having this error??

p.child_ID являетсяint? так как этот столбец помечен какIS NULL вSQL.

Надеюсь, кто-нибудь может мне помочь, заранее спасибо.

Ответы на вопрос(2)

Ваш ответ на вопрос