Inquiridor
Select com join retornando um unico item com uma lista

Pergunta
-
Fala pessoal, blz?
Ficou mal explicado o título, mas é o seguinte.
Tenho um objeto que possui uma lista de objetos, no banco a mesma coisa, esse objeto possui um relacionamento com outra tabela que podem ter muitos registros relacionados a ele.
Dessa forma minha classe fica assim
public class Pai { public String Id {get; set;} public String Nome {get; set;} public List<Filhos> ListaDeFilhos {get; set;} }
através do linq to sql fica fácil buscar o pai e sua Lista de Filhos, mas com instrução SQL pura, é possível preencher a lista de Filhos com uma só instrução?
- Editado Yuri Schmitz segunda-feira, 9 de dezembro de 2013 16:43
Todas as Respostas
-
é sim!
você pode fazer um INNER JOIN nas tabelas e ai ele vai trazer tipo um lista repetidas do Pai com todos os filhos
Na hora da passagem de mensagem se preenche a primeira vez Id, e Nome mais o primeiro registro de filhos e depois só adicione a lista!!! Seria uma forma!!!!
SELECT Filhos.PaiId, Pai.Nome, Filhos.Id as FilhoId, Filhos.NomeFilho FROM Pai INNER JOIN Filhos ON FILHOS.PaiId = Pai.Id WHERE Filhos.PaiId = 1
Agora se instancia Pai
e rodar um Reader sendo que a primeira linha se vai preencher Id e Nome e uma Linha de Listas de Filhos as próximas serão a Lista de Filhos ... Seria uma lógica apropriada
- Sugerido como Resposta Guilherme da Luz sexta-feira, 13 de dezembro de 2013 18:36
-
-
Yuri só uma dica ! A cláusula INNER JOIN do Sql é feita pra isso mesmo pra vc não precisar fazer duas SELECT no banco de dados correto ! Imagina que sua consulta traga um milhão de registros, qual a melhor performance ! Fazer uma consulta que traga um milhão ou duas que cada uma traga um milão de registros. Utilize o INNER JOIN. Por isso que o LINQTOSQL tem o metodo JOIN tbm.
-