Это может быть действительно элементарный вопрос, но какой хороший способ включить несколько дочерних объектов при написании запроса, который охватывает ТРИ уровня (или больше)?
то есть у меня есть 4 таблицы: Company
, Employee
, Employee_Car
иEmployee_Country
Компания имеет отношения 1: m с Сотрудником.
Сотрудник имеет отношения 1: m с Employee_Car и Employee_Country.
Если я хочу написать запрос, который возвращает данные из всех 4 таблиц, я сейчас пишу:
Company company = context.Companies
.Include("Employee.Employee_Car")
.Include("Employee.Employee_Country")
.FirstOrDefault(c => c.Id == companyID);
Должен быть более элегантный способ! Это многословно и генерирует ужасный SQL
Я использую EF4 с VS 2010
//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