J'ai une requête Linq qui récupère une entité et certaines de ses propriétés de navigation.
context.MyEntity
.AsNoTracking()
.Include(i=> i.Nav1)
.Include(i=> i.Nav2)
.Where(x=> x.Prop1==1)
.FirstOrDefault();
ma question est:
La requête ci-dessus est-elle suffisante pour ne pas suivre MyEntity
ni les propriétés de navigation NAv1
& Nav2
ou dois-je ajouter AsNoTracking
pour chaque propriété de navigation?
comme ça:
context.MyEntity
.AsNoTracking()
.Include(i=> i.Nav1)
.AsNoTracking()
.Include(i=> i.Nav2)
.AsNoTracking()
.Where(x=> x.Prop1==1)
.FirstOrDefault();
Utilisez AsNoTracking après avoir terminé tous vos paramètres de requête mais avant de déplacer les données en mémoire. Dans cet exemple, vous aurez besoin de:
context.MyEntity
.Include(i=> i.Nav1)
.Include(i=> i.Nav2)
.Where(x=> x.Prop1==1)
.AsNoTracking()
.FirstOrDefault();
Aucun objet enfant de l'entité parent ne sera suivi.