2017-10-16 4 views
0

Je suis en train de supprimer une liste d'éléments à partir d'une base de données avec Entity Framework, mais je ne peux pas obtenir les listes de sous ne pas charger,Entité Framework - Supprimer Liste des articles

essentiellement j'ai une liste qui chaque élément de cette liste contient une liste de 2, je ne veux pas charger les sous-listes mais juste la liste elle-même.

Comment charger la liste et non ses sous-listes?

Répondre

1

Il est possible que les sous-listes soient en train d'être LazyLoaded lorsqu'elles sont évaluées. Vous pouvez activer le chargement Lazy off avec

DbContext.Configuration.LazyLoadingEnabled = false; 

Plus de détails here. Je désactive généralement LazyLoading dans le constructeur de mon contexte et charge tout ce dont j'ai besoin avec des instructions include. Le chargement paresseux peut également entraîner des problèmes de performances. Si vous parcourez une collection de chargement paresseuse, vous obtiendrez une seule occurrence de base de données par élément dans la collection.

+0

Essayé ajouter ici, mais ne semble pas résoudre les listes ne se charge pas publique DbContext() : base ("name = DbContext") { Configuration.LazyLoadingEnabled = false; } – Max

+0

Pouvez-vous mettre un point d'arrêt à cet endroit et vérifier qu'il utilise ce constructeur. Aussi pouvez-vous poster la requête. –

+0

Il frappe le point de rupture et cela semble fonctionner maintenant, je pense que je ne l'ai pas rechargé ou quelque chose. Cependant, je reçois toujours l'erreur suivante. System.Data.Entity.Infrastructure.DbUpdateException: 'Une erreur s'est produite lors de la sauvegarde des entités qui n'exposent pas les propriétés de clé étrangère à leurs relations. La propriété EntityEntries renvoie null car une seule entité ne peut pas être identifiée comme source de l'exception. La gestion des exceptions lors de l'enregistrement peut être facilitée en exposant les propriétés de clé étrangère dans vos types d'entité. Voir l'exception interne pour plus de détails.' – Max