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的方式

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章