none
Selecionando dados de duas tabelas relacionadas RRS feed

  • Pergunta

  • Pessoal,

    Eu tenho duas tabelas que são Lancamento e Parcela, onde um lançamento tem várias parcelas, no linq eu fui fazer uma query assim:

     

     

    IEnumerable<Parcela> parcelas = Entidade.Parcela.ToList();

    quando fui verificar a lista de parcelas vi que o Objeto Lancamento estava nulo:

    <%

     

    = Html.Encode(item.Lancamento.TotalParcelas) %>

    Como posso fazer com que na lista de parcelas tbm retorne o objeto de Lancamento?

    domingo, 24 de outubro de 2010 22:46

Respostas

  • AMigo, se entendi bem seu objeto esta ligado e mapeado pelo EDMX correto? se tiver vc pode utlizar o include p/ retornar o objeto que esta ligado ao outro. por exemplo
    
    Entidade.Lancamento.Include("Parcela").ToList();
    

    sendo que no include vc precisar colocar o nome perfeito do campo que faz o relacionamento entre as entidades


    Olavo Oliveira Neto
    Se for útil marque como resposta e faça um Developer feliz :)
    • Marcado como Resposta ceabarros segunda-feira, 25 de outubro de 2010 15:45
    segunda-feira, 25 de outubro de 2010 15:38
    Moderador

Todas as Respostas

  • Olá,

    http://tiredblogger.wordpress.com/2007/07/11/table-joins-in-linq-good-bad-and-complexly-ugly/

    http://www.vikramlakhotia.com/Working_with_LINQ_queries_and_Inner_Join.aspx

    segunda-feira, 25 de outubro de 2010 11:52
  • Opa Seilor,

    Eu vi aqui e entendi, so que surgiu uma pequena dúvida, olha esse exemplo q peguei do link q você me passou:

    gvIncidents.DataSource =

    from i in db.Incidents

           from it in db.IncidentTypes

           where i.IncidentTypeId == it.IncidentTypeId

           select i).ToList();

    No exemplo acima eu tenho duas listas Incidents e IncidentTypes e minha dúvida seria no seguinte: Quando faço essa query o Linq retornar todo mundo de Incidents(from i in db.Incidents) e IncidentTypes(from it in db.IncidentTypes) e só depois faz o inner join pelo (where i.IncidentTypeId == it.IncidentTypeId)

    Ou ele retorna somente quem interessa?

    segunda-feira, 25 de outubro de 2010 13:15
  • AMigo, se entendi bem seu objeto esta ligado e mapeado pelo EDMX correto? se tiver vc pode utlizar o include p/ retornar o objeto que esta ligado ao outro. por exemplo
    
    Entidade.Lancamento.Include("Parcela").ToList();
    

    sendo que no include vc precisar colocar o nome perfeito do campo que faz o relacionamento entre as entidades


    Olavo Oliveira Neto
    Se for útil marque como resposta e faça um Developer feliz :)
    • Marcado como Resposta ceabarros segunda-feira, 25 de outubro de 2010 15:45
    segunda-feira, 25 de outubro de 2010 15:38
    Moderador