Dies mag eine wirklich elementare Frage sein, aber was ist eine gute Möglichkeit, mehrere untergeordnete Entitäten einzuschließen, wenn Sie eine Abfrage schreiben, die DREI Ebenen (oder mehr) umfasst?
dh ich habe 4 Tabellen: Company
, Employee
, Employee_Car
undEmployee_Country
Das Unternehmen hat eine 1: m-Beziehung zum Mitarbeiter.
Der Mitarbeiter hat eine 1: m-Beziehung zu Employee_Car und Employee_Country.
Wenn ich eine Abfrage schreiben möchte, die die Daten aus allen 4 Tabellen zurückgibt, schreibe ich gerade:
Company company = context.Companies
.Include("Employee.Employee_Car")
.Include("Employee.Employee_Country")
.FirstOrDefault(c => c.Id == companyID);
Es muss einen eleganteren Weg geben! Dies ist langwierig und erzeugt horrendes SQL
Ich verwende EF4 mit 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