Esta puede ser una pregunta realmente elementry, pero ¿cuál es una buena manera de incluir varias entidades secundarias al escribir una consulta que abarca TRES niveles (o más)?
es decir, tengo 4 tablas: Company
, Employee
, Employee_Car
yEmployee_Country
La empresa tiene una relación de 1: m con el empleado.
El empleado tiene una relación de 1: m con Employee_Car y Employee_Country.
Si quiero escribir una consulta que devuelva los datos de las 4 tablas, actualmente estoy escribiendo:
Company company = context.Companies
.Include("Employee.Employee_Car")
.Include("Employee.Employee_Country")
.FirstOrDefault(c => c.Id == companyID);
Tiene que haber una manera más elegante! Esto es largo aliento y genera SQL horrendo
Estoy usando EF4 con 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