Est-il possible de désactiver le chargement différé pour une requête spécifique sur Entity Framework 6? Je veux l’utiliser régulièrement, mais parfois je veux le désactiver. J’utilise des propriétés virtuelles pour les charger paresseux.
définir le code suivant avant la requête à exécuter
context.Configuration.LazyLoadingEnabled = false;
Vous pouvez désactiver le chargement différé pour une requête spécifique comme suit:
public static Cursos GetDatosCursoById(int cursoId) { using (var bd = new AcademyEntities()) { try { bd.Configuration.ProxyCreationEnabled = false; return bd.Cursos.FirstOrDefault(c => c.cursoId == cursoId); } catch (Exception ex) { return null; } } }
Accédez aux propriétés de votre diagramme et recherchez une propriété désignée pour le chargement différé et désactivez-la.
Si vous utilisez d’abord le code, allez dans votre zone de configuration et désactivez-le avec:
this.Configuration.LazyLoadingEnabled = false;
Il se peut que je manque quelque chose ici, mais plutôt que de changer la configuration à chaque fois, est-ce qu’une autre approche pourrait consister à utiliser.
Supposons que nous ayons une classe Product
qui possède une propriété de navigation pour une classe Colour
, vous pouvez charger la Colour
pour un Product
comme celui-ci –
var product = _context.Products .Where(p => p.Name == "Thingy") .Include(x => x.Colours) .ToList();