繁体   English   中英

实体框架查询,如何选择多个表?

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

我有这个问题

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.*但我需要更多数据。

谢谢

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

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 
                            };
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引用实体框架容器中的模型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM