int? e int comparação quando LEFT OUTER JOIN na edição Linq

Eu estou trabalhando em um projeto WinForms que requer usarLinq-To-Sql. Eu tenho sido capaz de criar o meu DataContext usando oSqlMetal ferramenta, e faça algumas perguntas. Mas agora tenho um problema que não consegui resolver.

Estou tentando fazer umaLEFT OUTER JOIN como segue:

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
             {
                  ...
             };

Quando escrevo esta consulta, um erro é levantado em tempo de compilação nojoin palavra:

O tipo de uma das expressões na cláusula de junção está incorreto. Inferência de tipo falhou na chamada para 'GroupJoin'

Eu sei que esse erro é causado pela comparação entrep.child_ID et.ID Desde ap.child_ID éint? et.ID éint. Mas,Como posso resolver isso? Como posso executar oLEFT OUTER JOIN sem ter esse erro ??

p.child_ID éint? uma vez que esta coluna está marcada comoIS NULL emSQL.

Espero que alguém possa me ajudar, obrigado antecipadamente.

questionAnswers(2)

yourAnswerToTheQuestion