Entity Framework - Désireux de chargement entités liées

Je suis en utilisant Entity Framework 4 avec MVC et la nécessité de s'assurer que toutes les entités référencées, que je veux utiliser mon point de vue, ont été chargé avant que le contrôleur méthode retourne, sinon la vue crache le redouté:

ObjectContext instance a été éliminé et ne peut plus être utilisé pour les opérations qui nécessitent une connexion.

Lors de la sélection de droite, d'après le contexte, je peux utiliser le Include(string) méthode pour les forcer à être inclus dans le SQL généré la requête:

var sellers = context.Sellers.Include("Recommendations.User").ToList();

Cependant, si j'ai (par exemple) une méthode d'assistance qui accepte une entité et les besoins de tous les éléments à charger, il n'y a pas Include méthode disponible.

void Test(Seller seller)
{
    //ensure all recommendations and their users are loaded
}

L'approche par force brute consiste à parcourir en boucle:

foreach (var recommendation in seller.Recommendations)
    recommendation.User.ToString(); //just force a load

Si j'ai 100 recommandations, cela va créer 101 requêtes SQL derrière-le-scènes. Idéalement, je veux une méthode/approche qui charge toutes les Recommendation ET User objets avec seulement un seul voyage à SQL.

Montrez-moi l'argent.

MODIFIER je ne suis pas vraiment intéressé à la question de savoir si c'est une bonne ou une mauvaise architecture. J'ai simplifié mon scénario pour le bien de la question. Pouvez-vous faire ce que je demande, avec l'objectif EF API?

EDIT 2

Ladislav d'édition offert de l'espoir d'une nouvelle approche, mais il semble que je ne suis pas tout à fait là.

Je peux réaliser ce que je veux via ce:

context.Sellers.Include("Recommendations.User").Single(s => s.Id == seller.Id);

Cette approche ne fonctionne pas à l'aide de LoadProperty...

context.LoadProperty(seller, "Recommendations.User");

...comme il échoue avec l'erreur...

Spécifié propriété de navigation Recommandations.L'utilisateur n'a pas pu être trouvé.

Aucune de ces deux approches de travail si vous n'avez pas de référence au contexte.

Même si cela n'a pas de réponse à votre question (donc je l'ai poster en commentaire) - il n'discuter de chargement des entités liées, comme il travaille actuellement dans EF6. Aussi c'est la 1ère SOF lien dans Google lors de la recherche pour "entity framework charge de entités liées" : msdn.microsoft.com/en-us/data/jj574232 .J'ai donc pensé que je pourrais partager avec vous...

OriginalL'auteur Drew Noakes | 2010-09-08