这可能是一个真正的基本问题,但是在编写跨越三个级别(或更多级别)的查询时,包括多个子实体的一种好方法是什么?
即我有4个表:Company
,Employee
,Employee_Car
和Employee_Country
公司与员工的关系为1:m。
Employee与Employee_Car和Employee_Country的关系为1:m。
如果我想编写一个查询来返回所有4个表中的数据,我当前正在编写:
Company company = context.Companies
.Include("Employee.Employee_Car")
.Include("Employee.Employee_Country")
.FirstOrDefault(c => c.Id == companyID);
必须有一种更优雅的方式!这很长一段时间,并产生可怕的SQL
我在VS 2010中使用EF4
//inside public static class Extensions public static IQueryable<Company> CompleteCompanies(this DbSet<Company> table){ return table .Include("Employee.Employee_Car") .Include("Employee.Employee_Country") ; } //code will be... Company company = context.Companies.CompleteCompanies().FirstOrDefault(c => c.Id == companyID); //same for next advanced method