none
Listar campos de tabela estrangeira com LINQ e EF RRS feed

  • Pergunta

  • Bom dia, desenvolvo com MVC e Entity Framework.
    Suponhamos essas duas tabelas:

    ****tb_DONO****
    dono_id
    dono_nome

    ****tb_CACHORRO****
    cachorro_id
    cachorro_nome
    dono_id


    O que eu queria era que quando fosse listar o nome do cachorro, listassem também o nome do dono (da tabela estrangeira), e não o dono_id
    Eu estou retornando a consulta por LINQ, para um aspx fortemente tipado "tb_CACHORRO", dessa forma:

    (from n in banco.tb_CACHORRO
    orderby n.cachorro_id
    select n).ToList();

    Aí no aspx tentei recuperar assim:
    <%= Html.Encode(item.tb_DONO.First().dono_nome) %>

    mas não deu, só estou conseguindo pegar o id
    <%= Html.Encode(item.dono_id) %>

    Alguém sabe como resolver isso de listar campos de tabela estrangeira?
    Obrigado
    segunda-feira, 22 de agosto de 2011 14:53

Todas as Respostas

  • (from n in banco.tb_CACHORRO.Include("tb_DONO")
    orderby n.cachorro_id
    select n).ToList();

    <%= Html.Encode(item.tb_DONO.dono_nome) %>

    segunda-feira, 22 de agosto de 2011 21:14
    Moderador
  • Valeu João, era essa jogada do Include mesmo eu só tive que colocar

    item.tb_DONO.First().dono_nome, mas até aí sossegado.

    Então, eu estou trabalhando há um mês com MVC, EF e Linq, você teria alguma referência boa pra passar, de livros, artigos etc. Pra ao menos conseguir me virar com essas dúvidas simples. Até agora só li o MVC in Action, mas achei muito ruim na questão prática

    Obrigado mesmo!!!

    terça-feira, 23 de agosto de 2011 12:49
  • Nesse caso Wellington o lance é comprar um livro específico sobre LINQ, os livros de MVC se concentram mais nas características do framework e não no acesso a dados especificamente.

    O livro que comprei e uso frequentemente para algumas dúvidas é o "Pro ASP.NET MVC Framework", o MVC in action não conheço.

    O que tenho não tem nada muito especifico sobre LINQ mas tem alguns exemplos.

    terça-feira, 23 de agosto de 2011 21:40
    Moderador