1

我有这个查询

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;

我如何得到它:

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

你可以在我的查询中看到,select c.*, u.* and t.col1,那么我如何在 EF 中得到它?因为我的第一个查询只得到carrera.*但我需要更多数据。

谢谢

4

2 回答 2

4

您可以轻松地返回一个包含三个连接表的所有属性的新对象:

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 
                            };
于 2012-12-19T20:58:29.507 回答
0
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
}

如果您想访问对象本身,那么您可以这样做

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

Carrera、Usario 和 Texto 指的是实体框架容器中的模型。

于 2012-12-19T21:20:43.993 回答