Nei controllori generati da Visual Studio, così come l'applicazione di esempio (ContosoUniversity), l'azione Index ha sempre qualcosa di simileLo scopo di includere() in ASP.NET MVC + Entity Framework
var departments = db.Departments.Include(d => d.Administrator);
Cosa c'è la differenza tra questo e
var departments = db.Departments;
per prima cosa ho il sospetto che il primo (con includere) consente la visualizzazione di recuperare department.Administrator. Ma il secondo (senza Include) sembra essere in grado di farlo anche.
Non sono sicuro se ho capito correttamente. Con Includi, EF utilizzerà join per catturare entrambi i dipartimenti e i relativi amministratori in un'unica query. Senza Includi, EF prenderà solo i Dipartimenti e poi prenderà i loro Amministratori su richiesta? Quindi, se ho bisogno di uno o due Amministratori nei Depositi, non dovrei usare Includi. Ma se ho bisogno dell'Amministratore di tutti (o molti) dipartimenti, dovrei usare Includi. – Jim
Esattamente, l'inclusione impone che gli amministratori vengano caricati nella stessa query che carica i reparti. Senza l'inclusione, gli amministratori vengono caricati uno alla volta su richiesta. –
@Jim, in particolare, dal momento che si utilizza ASP.NET MVC, non si desidera che le viste contengano il database. E per 'dipartimenti.Primo(). Amministratore' per lavorare senza accesso al database,' Amministratore' deve essere precaricato usando 'Include'. – bzlm