J'ai une table de référencement standard de Si j'utilise le code ci-dessous, il ne se charge qu'au deuxième niveau. p> est-il possible de charger des références si j'ai tous les objets de catégorie déjà chargés? < / p> une méthode à charger consiste à ajouter la propriété mais cela génère une très longue insane Code SQL et aussi ça ne fait pas ce que je veux. P> p> catégories code>. Dans mon modèle d'entité, j'ai fait des associations
enfants code> et
parent code>. Est-il possible de charger l'ensemble de la catégorie code> code> sans chargement paresseux?
enfants code> plusieurs fois p>
3 Réponses :
OK, vous pouvez envisager d'utiliser la méthode de charge. Bien sûr, la catégorie Entité doit être suivie par ObjectContext. P> Il y a une meilleure explication ici comment-t-entité-cadre-travail-avec-récursives-hiérarchies comprennent-semble-pas à . P> p>
Je connais cette méthode (il générera des sucrets de requêtes T-SQL), mais aussi je le charge de muss sans suivi, car je le sauve dans le cache. Je cherche quelque chose d'autre. Si je charge une table entière de catégories, j'ai également chargé des catégories de parents et d'enfants, mais les propriétés de l'association ne sont pas chargées. Aussi, j'ai une table apparentée de catégorieType et je le charge de muss pour chaque catégorie quel que soit leur même rangée ...
Ok, je n'ai pas vu que vous devez le mettre en cache. Hmm, je vais essayer de penser comment cela pourrait être résolu.
Non, ce n'est pas possible. Considérez: toutes les requêtes LINQ aux entités sont traduites en SQL. Quelle instruction SQL comprend une profondeur illimitée dans une hiérarchie auto-référençant? Dans SQL standard, il n'y en a pas. S'il y a une extension pour cela dans T-SQL, je ne sais pas ce que c'est, et je ne pense pas non plus les fournisseurs d'EF. P>
Mais si j'exécute une requête "Select * à partir de catégories", j'ai chargé une table entière et j'ai également chargé toutes les catégories parent et d'enfants, car ils sont tous dans une seule table. Donc, dans ce cas, il n'est pas très compliqué d'attribuer ces enregistrements chargés aux propriétés référencées ou non?
Si vous avez réellement itérité la table entière, tous les objets serait i> en mémoire et [I> serait déjà fixé, avec ou sans inclus. Mais cela n'arrivera pas tant que vous n'aurez pas atteint le dernier enregistrement de la table. Inclure des garanties que les objets associés seront là sur le dossier premier i> vous iTERE.
"Quelle instruction SQL comprend une profondeur illimitée dans une hiérarchie auto-référenceuse?" -> Expressions de table communes dans T-SQL
Il ne l'a pas demandé dans une requête. Mais je suppose que c'est ce qu'il cherche en fonction d'un commentaire ci-dessous.
Une manière dont j'ai l'habitude de mettre en œuvre que si j'ai plusieurs entités, je souhaite que tous les enfants de la table de référencement sont d'utiliser