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
public IEnumerable<applicationserver> GetAll() { return this.Database.ApplicationServers .Include(x => x.ApplicationsWithOverrideGroup) .Include(x => x.ApplicationWithGroupToForceInstallList) .Include(x => x.CustomVariableGroups) .ToList(); }
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:
accepte l'expression de Lambda. En utilisant des expressions Lambda imbriquées, vous pouvez spécifier des niveaux multi-niveaux incluent:
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:
var query = this.Database.ApplicationServers .Include(x => x.ApplicationsWithOverrideGroup .Select(y => y.Application)) .Include(x => x.ApplicationsWithOverrideGroup .Select(y => y.CustomVariableGroup));
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!