Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá!
Estou desenvolvendo uma aplicação no trabalho e em alguns momentos preciso fazer consultas (usando linq to entities) utilizando "left join".
Pesquisei muito na internet como fazer e depois de quebrar muito a cabeça descobri uma maneira de como fazer isso, por isso resolvi postar o que consegui para quem sabe ajudar alguém.
Aí vai um exemplo de consulta:
var result = from pe in model.Pessoa
join co in model.Colecao on pe.IdPessoa equals co.IdPessoa into COLECTION
from coll in COLECTION.DefaultIfEmpty()
select new{ pe.NomePessoa, pe.IdadePessoa, coll.NomeColecao, coll };
Nessa consulta por exemplo, quero trazer todas as pessoas cadastradas e se houver uma coleção cadastrada para a pessoa, retorno os dados da tabela Coleção, já que nem todas as "pessoas" possuim uma coleção cadastrada. O DefaultIfEmplty() funciona como se fosse o "left" numa consulta SQL, se não colocássemos o DefaultIfEmpty() a consulta nos retornaria somente as pessoas que possuem uma coleção cadastrada.
Espero que esse exemplo ajude alguém, e qualquer dúvida estamos aí.
Carregando comentários...