EF4中多表关联查询Include的写法

大家好,好久没有写作了,最近遇到了个问题,最终是靠自己的尝试写出来的,希望可以帮到有需要的人。

在我们查询时通常会遇到多级表关联的情况,很多时候有人会想写一个from LINQ语句来解决,那么冗长的代码,还影响开发效率

接下来我就简单描述下吧。

正常情况下大家会使用如下这种方式,Bugs表关联BugsFound表。

using (VersionControlEntities entities = new VersionControlEntities())
{
return entities.Bugs.Include("BugsFound").Where(jc => jc.ID == bugid).FirstOrDefault();
}

如果我想在关联BugsFound表下面的表,就不知道该怎么写了,直接写Include("表名")会去关联Bugs表中,但是Bugs表中不存在这个“表名”的关联关系。

怎么办呢?就衍生出了下面的方法尝试。

using (VersionControlEntities entities = new VersionControlEntities())
{
return entities.Bugs.Include("BugsAnalysis").Include("BugsAnalysis.User").Where(jc => jc.ID == bugid).FirstOrDefault();
}

这里面用的是Bugs关联了BugsAnalysis表,再关联BugsAnalysis表所关联的User表,写成BugsAnalysis.User即可。

希望这种方法可以帮助到各位。更新版本的EF的写法大家可以参考Include和ThenInclude的方式

posted @ 2020-07-03 08:47  Jacob·雅各布  阅读(834)  评论(12编辑  收藏  举报