2011-05-31 9 views
1

Je souhaite précharger mon catalogue dans mon application Web. J'utilise EF4 et j'aimerais pré-lire toutes mes données de catalogue. Existe-t-il un moyen simple de le faire avec EF4?Preload Entity Framework 4 tree

Structure DB: Catalogue -> Catégorie -> [Catégorie ->] produit -> Options

Comment puis-je précharger tous les objets sur l'application commencent?

Merci

Répondre

1

Vous pouvez simplement appeler:

var data = context.Catalogs.Include("Categories.Products.Options").ToList(); 

Je suppose que Catalog a la propriété de navigation Categories, Category a la propriété de navigation Products et Product a la propriété de navigation Options. Ce sera probablement create enormous result set.

Le préchargement d'une telle quantité de données n'a généralement aucun sens. Je dirais ne pas le faire et charger des données sur demande quand vous en avez besoin. Le préchargement est logique pour les données qui ne changent pas et se présentent presque sur toutes les pages que vous montrez aux clients.

+0

Notre catalogue est statique et ne change pas pendant la durée de vie de l'application web et oui, il va créer un énorme ensemble de résultats (oui gigs de données), mais tous les précharges au démarrage de l'application. Je viens de lire le lien que vous avez inclus très instructif sur la partie .Include. Maintenant, je sais ne pas utiliser le .Include. Ma question initiale était comment puis-je précharger l'arbre et il ressemble à l'aide de .Include charge une table au lieu d'un arbre. Comment puis-je précharger comme un arbre? – freddoo