Link - executando join

Disponível somente no TrabalhosFeitos
  • Páginas : 2 (292 palavras )
  • Download(s) : 0
  • Publicado : 20 de maio de 2012
Ler documento completo
Amostra do texto
Imagine que temos duas tabelas, "Perguntas"(IdPergunta, DsPergunta, AutorPergunta) e "Respostas"(IdResposta,IdPergunta,DsResposta, AutorResposta).Verifique que as duas se relacionampelo campo idPergunta que seria "PAI" na tabela "Perguntas" e filho na tabela "Respostas", desta maneira temos um relacionamento de 1 para muitos, ou seja, eu tenho 1 pergunta para "N"respostas.

Em uma query simples de consulta no LINQ teriamos por exemplo a seleção das linhas da tabela "Perguntas", ficaria assim:


from x in Perguntas
select x


Mas imagineque nós queremos trazer justamente as respostas que foram dadas para a pergunta de ID = 1.
No SQL, poderíamos apenas mencionar os campos de cada tabela, separando por virgula ecolocando o nome da tabela antes, correto ? Ex:



Select p.idPergunta, p.dsPergunta, r.dsResposta from Perguntas p join Respostas r on p.idPergunta = r.idPergunta
where p.idPergunta = 1No Sql acima, nos retornaria todas as respostas dadas para a pergunta de id = 1 , mas no LINQ precisamos utilizar o comando SELECT NEW e especificarmos variáveis que receberão ovalor dos campos trazidos na query. Veja como ficaria o caso acima no LINQ:



from x in Perguntas join
y in Respostas on x.IdPergunta equals y.idPergunta
where (x.idPergunta ==1)
Select new
{
pergunta = p.dsPergunta,
resposta = r.dsResposta
}



Vocês podem perceber que sempre no LINQ ao utilizar o sinal de =, devemos fazer como a comparação no C#"==", dois iguais e devemos também substituir o "=" do join por equals.

Conclusão!
O LINQ é uma ferramenta que auxilia bastante no dia a dia, traz velocidade e quebra muitos galhosquando se trata de trabalhar com dados vindos do banco sem ter que ficar pesquisando novamente na base. Espero que tenham aproveitado bem esta dica. Até o próximo artigo. Ass: Alex Ayub
tracking img