angel
angel

Reputation: 4632

entity framework query, how to select more than 1 table?

i have this query

var resultado = from c in conn.carrera
                            join u in conn.usuario on c.idusuario equals u.idusuario
                            join t in conn.texto on c.idtexto equals t.idtexto
                            where c.estatus == 1
                            select c;

how do i get something as it:

select c.*,u.*,t.eltexto from carrera c
join usuario u on c.idusuario =u.idusuario
join texto t on c.idtexto = t.idtexto
where c.estatus = 1

you could see in the query i am select c.*, u.* and t.col1, then how can i get it in EF? because my first query gets only carrera.* but i need more data.

thanks

Upvotes: 1

Views: 772

Answers (2)

plasticide
plasticide

Reputation: 1240

select c.*,u.*,t.eltexto from carrera c
join usuario u on c.idusuario =u.idusuario
join texto t on c.idtexto = t.idtexto
where c.estatus = 1

from c in Carrerra
join u in Usuario on c.idusuario equals u.idusuario
join t in Texto on c.idtexto equals t.idtexto
where c.estatus = 1
select new {
  newcolumn1 = c.column1,
  c.column2,
  usercolumn1 = u.column1,
  usercolumn2 = u.column2,
  textcolumn = t.column1
}

if you want access to the objects themselves, then you could do

select new {
  usario = u,
  carrera = c,
  texto = t
}

Carrera, Usario, and Texto refer to the Models in your Entity Framework container.

Upvotes: 0

Kamyar Nazeri
Kamyar Nazeri

Reputation: 26474

You could easily return a new object consisting all the properties of the three joined tables:

var resultado = from c in conn.carrera
                            join u in conn.usuario on c.idusuario equals u.idusuario
                            join t in conn.texto on c.idtexto equals t.idtexto
                            where c.estatus == 1
                            select new
                            { 
                               c.prop_1, 
                               c.prop_n, 
                               u.prop_1, 
                               u.prop_n, 
                               t.prop_1, 
                               t.prop_n 
                            };

Upvotes: 4

Related Questions