I have a Linq query that fetches an entity and some of its navigation properties.
context.MyEntity .AsNoTracking() .Include(i=> i.Nav1) .Include(i=> i.Nav2) .Where(x=> x.Prop1==1) .FirstOrDefault();
my question is:
Is the above query enough to not track MyEntity
nor the navigation properties NAv1
& Nav2
or must I add AsNoTracking
for each navigation property?
like this:
context.MyEntity .AsNoTracking() .Include(i=> i.Nav1) .AsNoTracking() .Include(i=> i.Nav2) .AsNoTracking() .Where(x=> x.Prop1==1) .FirstOrDefault();
Use AsNoTracking after you have completed all your query parameters but before you move the data into memory. In this example, you'll want:
context.MyEntity .Include(i=> i.Nav1) .Include(i=> i.Nav2) .Where(x=> x.Prop1==1) .AsNoTracking() .FirstOrDefault();
Any child objects of the parent entity will not be tracked.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With