이것은 정말 기본적인 질문 일 수 있지만 3 수준 (또는 그 이상)에 걸친 쿼리를 작성할 때 여러 하위 엔터티를 포함시키는 좋은 방법은 무엇입니까?
즉, 내가 4 개 테이블이 : Company
, Employee
, Employee_Car
및Employee_Country
회사는 직원과 1 : m 관계가 있습니다.
직원은 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