Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Alaaan

Como efetuar join entre tabelas no ASP .NET MVC

Recommended Posts

Boa noite a todos,

 

Comecei a pouco tempo a estudar sobre ASP NET MVC. Criei um projeto com banco de dados primeiro, criando automaticamente as classes no Models do projeto.

O problema que enfrento hoje, é que preciso mostrar na view um conjunto entre duas tabelas, porém, não consegui efetuar esta ligação entre as duas tabelas utilizando o retorno Find(id).

Tabelas:

noticia

(

idnoticia,

titulo,

noticia,

url_imagem

)

it_noticia

(

id_itnoticia,

idnoticia,

url

)

 

Alguém poderia me dar um help?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem duas formas de fazer isso, usando Lambda (mas só funciona se o mapeamento estiver correto), ou Linq.

Lambda:

public it_noticia GetById(int id)
{
   var dados = _db.it_noticia.Include("noticia").FirstOrDefault(x => x.id_itnoticia.Equals(id));
   return dados;
}

LINQ:

public class noticiaDto
{
	public int idnoticia  { get; set; }
        public string titulo  { get; set; }
	public string noticia { get; set; }
	public string url_imagem { get; set; }
	public int id_itnoticia  { get; set; }
	public int idnoticia     { get; set; }
	public string url        { get; set; }
}

public noticiaDto GetById(int id)
{
    var dados = from it in _db.it_noticia
                join n in _db.noticia on it.idnoticia equals n.idnoticia
                orderby it.id_itnoticia
                where it.id_itnoticia == id
                select new noticiaDto
                {
                    idnoticia = n.idnoticia
					titulo = n.titulo
					noticia = n.noticia
					url_imagem = n.url_imagem
					id_itnoticia = it.id_itnoticia  
					url = it.url
                };

    return dados.FirstOrDefault();
}

Espero ter ajudado, qualquer dúvida estou a disposição.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.