我正在使用Entity Framework。我想从数据库中的多个表中选择没有外键关系的数据,如
select
tOut.columnId, wo.columnType, tIn.*
from
TbaleA tIn,
TableB tOut,
TableC wo
where
1 = 1
and tIn.columnRefId = tOut.columnGuid
and tOut.columnId = wo.columnId
实体框架中是否有任何解决方案?我试过使用include语法,它对我不起作用..
答案 0 :(得分:3)
如果使用查询语法,即使不存在外键关系,也可以连接表。 它会沿着这些方向发展:
var result = from tIn in yourDbContext.TableA
join tOut in yourDbContext.TableB on tIn.columnRefId equals tOut.columnGuid
join wo in yourDbContext.TableC on tOut.columnId equals wo.columnId
select new { tOut.columnId, wo.columnType, TableA = tIn };
答案 1 :(得分:0)
这些链接上有lambda和查询语法的示例:
答案 2 :(得分:0)
另一种解决方案是使用/添加导航属性到您的类,例如:
class TableA {
Int32 Id {get; set;}
//navigation property
TableB b {get; set;}
}
并在查询中使用它们
from a in yourDbContext.TableA
select new { a.Id, a.b.columnType}
当然,可能会有一些配置(代码或注释)来设置关系以使它们适合数据库模式。但是你会做一次而不是每次查询。