Questa potrebbe essere una domanda davvero elementare, ma quale modo migliore per includere più entità figlio quando si scrive una query che si estende su TRE livelli (o più)?Entity framework linq query Include() più entità minori
cioè Ho 4 tabelle: Company
, Employee
, Employee_Car
e Employee_Country
azienda ha un 1: rapporto m con dipendenti.
Il dipendente ha una relazione di 1: m con Employee_Car e Employee_Country.
Se voglio scrivere una query che restituisce i dati provenienti da tutti e 4 i tavoli, Attualmente sto scrivendo:
Company company = context.Companies
.Include("Employee.Employee_Car")
.Include("Employee.Employee_Country")
.FirstOrDefault(c => c.Id == companyID);
Ci deve essere un modo più elegante! Questo è prolisso e genera SQL orrendo
Sto usando EF4 con VS 2010
questo è fantastico. –
Ma vorrei usarlo come questo: '// all'interno estensioni pubbliche di classe statiche pubblici statici IQueryable CompleteCompanies (questa tabella DbSet ) { tavolo ritorno .include ("Employee.Employee_Car") .include (" Employee.Employee_Country "); } // codice sarà ... azienda società = context.Companies.CompleteCompanies(). FirstOrDefault (c => c.Id == companyID); // stesso per il prossimo metodo avanzato' –
Hamid
Bullsye Nix. Le estensioni dovrebbero essere il primo punto di riferimento per ... beh ... estendere le funzionalità predefinite. – ComeIn