Dans les contrôleurs générés par Visual Studio, ainsi que l'application de l'échantillon (ContosoUniversity), l'action Index a toujours quelque chose commeLe but de include() dans ASP.NET MVC + Entity Framework
var departments = db.Departments.Include(d => d.Administrator);
Qu'est-ce la différence entre cela et
var departments = db.Departments;
d'abord, je soupçonne que le premier (avec Include) permet à la vue de récupérer department.Administrator. Mais le second (sans inclure) semble être capable de faire cela aussi.
Je ne sais pas si je l'ai compris correctement. Avec Include, EF utilisera join pour saisir les deux départements et leurs administrateurs dans une seule requête. Sans inclure, EF n'attrapera que les départements et récupérera ses administrateurs à la demande? Donc, si je n'ai besoin que d'un ou deux administrateurs dans les ministères, je ne devrais pas utiliser Inclure. Mais si j'ai besoin de l'administrateur de tous (ou de la plupart) des ministères, je devrais utiliser Inclure. – Jim
Exactement, l'inclusion force les administrateurs à être chargés dans la même requête qui charge les départements. Sans l'inclusion, les administrateurs sont chargés un à la fois sur demande. –
@Jim, spécifiquement, puisque vous utilisez ASP.NET MVC, vous ne voulez pas que vos vues pour contacter la base de données. Et pour 'departments.First(). Administrator' travailler sans accès à la base,' Administrator' doit être pré-chargé à l'aide 'Include'. – bzlm