7
votes

Comment mapper des entités avec des propriétés chargées de paresseux (sans les faire charger)?

J'utilise EF 4.1 et Code-d'abord dans un projet MVC, et automapper pour mapper des entités pour voir les modèles.

Avant d'utiliser le code - je pouvais d'abord exclure les propriétés de navigation afin d'empêcher tout ce qui n'était pas déjà chargé. J'utilise .Cluded () dans mes questions pour inclure les références dont j'ai besoin afin d'éviter des voyages ronds supplémentaires de la base de données.

Toutefois, avec le code - d'abord, mon entité n'expose qu'une propriété d'entité (ou l'ICollection s'il y en a plus d'une). Comment puis-je savoir s'il a été chargé sans déclencher la charge?

En supposant que cela puisse être fait, est-il un moyen d'en faire le comportement par défaut pour SOPApper, de sorte que je n'ai pas à exclure explicitement les membres sur chaque entité?


0 commentaires

3 Réponses :


2
votes

Vous devriez être capable de chargez explicitement eux en éteignant paresseux chargant: xxx


2 commentaires

Je pense que avec EF4.1 et le code - il a d'abord pocos, donc is chargé et charge ne sera pas disponible sur les propriétés de navigation.


Merci, la désactivation du chargement paresseux pourrait également être une option - verra ce qui fonctionne mieux.



11
votes

Vous pouvez vérifier si une propriété de navigation de référence ou de collecte d'une entité a été chargée par: xxx


1 commentaires

Merci, c'est exactement ce dont j'ai besoin. Dommage que j'ai besoin du contexte autour, peut avoir à ajouter des aides sur mon référentiel pour cela à la place.



4
votes

Le code EF fait d'abord le chargement paresseux uniquement pour les propriétés marquées comme virtuel (cela peut remplacer ceux-ci et placer dynamicproxy au lieu de cela). Si vous ne faites pas votre propriété virtuelle, vous fermerez le chargement paresseux pour cette propriété.


0 commentaires