Maison > développement back-end > C++ > La méthode `inclue () de l'entité peut-elle gérer plusieurs niveaux de propriétés imbriquées?

La méthode `inclue () de l'entité peut-elle gérer plusieurs niveaux de propriétés imbriquées?

DDD
Libérer: 2025-01-25 06:01:11
original
865 Les gens l'ont consulté

Can Entity Framework's `Include()` Method Handle Multiple Levels of Nested Properties?

Frame de l'entité Framework Multi-Level Attribute Chargement

La méthode de

Entity Framework peut pré-télécharger efficacement les entités pertinentes, mais peut-elle gérer les attributs imbriqués multi-niveaux (tels que les ensembles imbriqués contenant des objets complexes)?

Include() Implémentation et restrictions existantes

Exemple de code affiche Les méthodes peuvent charger des attributs de premier niveau. La requête suivante:

L'objet Include() contenant l'attribut

contiendra l'ensemble des objets
<code class="language-csharp">public IEnumerable<applicationserver> GetAll()
{
    return this.Database.ApplicationServers
        .Include(x => x.ApplicationsWithOverrideGroup)
        .Include(x => x.ApplicationWithGroupToForceInstallList)
        .Include(x => x.CustomVariableGroups)
        .ToList();
}</code>
Copier après la connexion
. Cependant, les attributs

et ApplicationsWithOverrideGroup dans l'ensemble ne seront pas remplis. ApplicationServer ApplicationWithOverrideVariableGroup Nested multi-niveaux Inclure la solution ApplicationWithOverrideVariableGroup Application CustomVariableGroup Selon la version du cadre d'entité utilisé, vous pouvez utiliser les méthodes suivantes pour pré-télécharger les attributs multi-niveaux:

Framework de l'entité 6: La méthode

Entity Framework 6

accepte l'expression de Lambda. En utilisant des expressions Lambda imbriquées, vous pouvez spécifier des niveaux multi-niveaux incluent:

Entité Core Framework:

Entity Framework Core a introduit la méthode Include(), permettant au niveau d'inclure. Cette méthode est utilisée après le initial pour spécifier le niveau plus profond:

<code class="language-csharp">var query = this.Database.ApplicationServers
    .Include(x => x.ApplicationsWithOverrideGroup
        .Select(y => y.Application))
    .Include(x => x.ApplicationsWithOverrideGroup
        .Select(y => y.CustomVariableGroup));</code>
Copier après la connexion

Grâce à ces méthodes, les attributs multi-niveaux de l'entité Framework peuvent être chargés pour garantir que l'ensemble d'objets complexes est entièrement rempli pendant la récupération.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal