我正在使用EF6.1,并且对编写联接查询的两种格式有些困惑。

var query = (from cc in dbContext.Companies.AsNoTracking()
             join dc in dbContext.Departments.AsNoTracking()
             on cc.CompanyId equals dc.CompanyId
                select new {cc,dc}).ToList().Select(k=> New Company()
                              {
                                 CompanyId = k.cc.CompanyId,
                                 Departments = k.dc.ToList()
                              });




var query = dbContext.Comapanies.Include(k=>k.Departments).ToList();


我的问题是应该使用哪种,优缺点是什么。

我发现在有多个表的情况下使用Include的混合反馈。

根据下面的文章
https://msdn.microsoft.com/en-in/data/jj574232.aspx


  “请注意,当前无法过滤加载了哪些相关实体。包含将始终存在于所有相关实体中。”


这句话也不太清楚。
请提出建议。

最佳答案

“请注意,当前无法过滤加载了哪些相关实体。包含将始终存在于所有相关实体中。”

**此语句意味着,如果表在数据库中定义了正确的关系,则可以使用“ Inclues”,但join语句不需要在数据库中定义任何关系

它成为让使用inclue或join时的关键点,btw includes更合适,因为它已经在DB和实体中进行了管理

07-24 09:38
查看更多