大家好,好久沒有寫作了,最近遇到了個問題,最終是靠自己的嘗試寫出來的,希望可以幫到有需要的人。
在我們查詢時通常會遇到多級表關聯的情況,很多時候有人會想寫一個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的方式