La requête suivante ne se charge pas les tables quand je l'exécute:chargement Eager Entity Framework échoue sur requête complexe
IEnumerable<Bookmark> tempBookmarks = ListBookmarksByUserID(userID);
IEnumerable<CandidateWithBookmarks> results = (from c in _internshipEntities.CandidateSet
.Include("education")
.Include("progress")
.Include("contacts")
.Include("availability")
.Include("hosttypes")
.Include("hostsizes")
.Include("hostcapacities")
.Include("hoststates")
.Include("users")
join b in tempBookmarks on c.ID equals b.candidates.ID
select new CandidateWithBookmarks()
{CandidateObject = c, BookmarkObject = b});
return results;
J'ai trouvé quelques articles liés au problème, à savoir Alex James' article "How to make Include really Include". La solution est fournie avec une mise en garde:
Pour que cela fonctionne votre sélectionnez final doit être des entités, à savoir sélectionnez après plutôt que de sélectionner de nouveaux {...}
Ce qui est évidemment un problème pour le bloc ci-dessus code. Y a-t-il d'autres solutions de contournement connues pour ce problème qui ne rompra pas le chargement impatient?
Vous pouvez demander un chargement rapide, mais vous ne pouvez pas le forcer. Vous pouvez contourner ce problème, mais si quelqu'un d'autre change le code plus tard, vous êtes probablement de retour à la case départ, alors assurez-vous de vérifier la propriété IsLoaded! –
Merci pour le conseil, cela aide de manière significative. –