Questa potrebbe essere una domanda davvero elementare ma qual è il modo migliore per includere più entità figlio quando si scrive una query che si estende su TRE livelli (o più)?
vale a dire Ho 4 tabelle: Company
, Employee
, Employee_Car
eEmployee_Country
La società ha una relazione 1: m con il Dipendente.
Il dipendente ha una relazione 1: m sia con Employee_Car che Employee_Country.
Se voglio scrivere una query che restituisca i dati da tutte e 4 le tabelle, sto attualmente scrivendo:
Company company = context.Companies
.Include("Employee.Employee_Car")
.Include("Employee.Employee_Country")
.FirstOrDefault(c => c.Id == companyID);
Deve esserci un modo più elegante! Questo è lungo e genera un orrendo SQL
Sto 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