Lorsque vous utilisez la méthode include () dans Entity Framework pour récupérer des objets contenant des données connexes, une limite commune consiste à manquer de prise en charge des propriétés imbriquées multi-blouses. Par exemple, supposons que vous ayez un modèle, où les applicationsrservers possèdent une application avec la collection OverrideGroup, et les applications avec des attributs d'application et de CustomVariableGroup.
Tentative initiale:
Afin d'inclure l'attribut imbriqué, vous pouvez essayer les méthodes suivantes:
Cependant, cette méthode ne remplit que l'attribut activé de l'applicationwithOverrideVariableGroup sans remplir les propriétés de l'application ou de CustomVariableGroup.
<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>
y compris l'attribut imbriqué dans EF 6, veuillez utiliser l'inclusion () qui accepte les expressions lambda:
<code class="language-csharp">using System.Data.Entity; query.Include(x => x.Collection.Select(y => y.Property));</code>
En utilisant ces méthodes, vous pouvez charger avec impatience le niveau d'attribut imbriqué dans le cadre d'entité pour vous assurer que votre objet a complètement rempli les données nécessaires.
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!