Comparação de múltiplas colunas no Join
-
quinta-feira, 23 de fevereiro de 2012 13:09
Pessoal;
Preciso fazer uma consulta com um "left join" entre duas tabelas. Uma delas possui várias FK's e eu tenho que comparar todas elas na consulta. Fiz dessa forma:
var list = (from pi in db.ProcessoImportacaoDetalhe join pia in db.ProcessoImportacaoDetalheAtivo on new { pi.NumeroOrdem, pi.CodigoReferencia, pi.NumeroItem, pi.CodigoRemessa, pi.CodigoProcesso, pi.CodigoProduto } equals new { pia.NumeroOrdem, pia.Referencia, pia.NumeroItem, pia.Remessa, pia.Processo, pia.CodigoProduto } into ativo from a in ativo.DefaultIfEmpty() select pi).ToList();O problema é que esse formato de comparação (on new {..} equals new {..}) só funciona para comparar duas colunas.
Alguém sabe me dizer outra forma de fazer isso?
Deise Vicentin
"Eu não procuro saber as respostas, procuro compreender as perguntas." Confúcio
Todas as Respostas
-
quinta-feira, 23 de fevereiro de 2012 14:25
Consegui resolver o problema, não sei se da melhor forma mas funcionou. Segue a solução para quem precisar:
list = (from pi in db.ProcessoImportacaoDetalhe from pia in db.ProcessoImportacaoDetalheAtivo .Where(x=> x.CodigoProduto == pi.CodigoProduto && x.NumeroItem == pi.NumeroItem && x.NumeroOrdem == pi.NumeroOrdem && x.Processo == pi.CodigoProcesso && x.Referencia == pi.CodigoReferencia && x.Remessa == pi.CodigoRemessa) .DefaultIfEmpty() select pi).ToList();
Deise Vicentin
"Eu não procuro saber as respostas, procuro compreender as perguntas." Confúcio- Marcado como Resposta Deise Vicentin quinta-feira, 23 de fevereiro de 2012 14:25

