Comment faire pour inclure tous les sous-jacents les propriétés de navigation automatiquement avec entity framework

Scénario: je voudrais ajouter une entité de la base de données qui aurait les propriétés de navigation et que entité a les propriétés de navigation.. et ainsi de suite. Fondamentalement, les tables dans la base de données sont connectés les uns avec les autres - tous.

- Je utiliser EF4.3 et contexte/demande de modèle, donc je ne veux pas d'activer le chargement Paresseux; il aurait simplement de prendre trop de temps pour charger l'entité que j'ai besoin. Jusqu'à présent j'ai appris il n'y a pas d'autre façon de le faire que d'utiliser la méthode include comme ceci:

 context.Set<TEntity>().include("navproperty1").include("navproperty1.navproperty1.1")... and so on.

De cette façon, la maintenabilité serait mauvais, plus c'est beaucoup de code, mais est-il un autre moyen si je ne veux pas écrire manuellement toutes les comprend, pour chaque type d'entité?

Note: navproperty1.navproperty2 inclura automatiquement navproperty1 trop.
Êtes-vous sûr que vous voulez? Vous pourriez vous retrouver avec de mauvaises performances et la plus complexe des requêtes SQL que d'aller avec un chargement différé. Ne pas mentionner la quantité de données qu'une telle requête pourrait transférer d'un fil. Mais, il pourrait être fait comme une extension de la méthode, à l'aide de la réflexion sur le type d'entité.
êtes-vous en utilisant le premier code?
nav propriété1 ne se charge pas automatiquement nav propriété2 pour autant que j'ai testé, mais peut-être que je suis absent quelque chose. @Jure: Ouais je sais que je suis vraiment mauvais en terme de performance mais lazyload n'est pas une option pour moi, parce que je ne veux pas les procurations pour être activé et qui est nécessaire pour le lazy load droit?! La raison, j'ai essayé d'inclure tous les nav propriétés est, "Une" entité"a 1 : n ce qui concerne les "B" de l'entité, mais "B" entité a n : m rapport à "C" de l'entité. Et si je ne les suivants "C" à "Un" et puis essayer d'appeler contexte.SaveChanges() alors toutes les données seraient perdues entre "B" et "C". Une idée peut-être comment pourrais-je le résoudre?

OriginalL'auteur JahManCan | 2013-05-08