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.