EF Core Change Tracking
You are a Junior on-call. A production issue might involve EF Core Change Tracking. How do you diagnose and mitigate?
Answers use simple, clear English.
Quick interview answer
Mitigate first, then root-cause. Check symptoms against: Mixing tracked and detached graphs; attaching wrong state..
Detailed answer
Mitigate first, then root-cause. Check symptoms against: Mixing tracked and detached graphs; attaching wrong state.. Validate with: Short-lived DbContext per request; explicit Entry().State when needed.. Context: DbContext tracks entities loaded in context. SaveChanges generates INSERT/UPDATE/DELETE. AsNoTracking skips tracking for read-only queries — faster, less memory. Core: DbContext tracks entities loaded in context. SaveChanges generates INSERT/UPDATE/DELETE. AsNoTracking skips tracking for read-only queries — faster, less memory. Real-time example: Report query uses AsNoTracking(); edit form loads entity with tracking for SaveChanges update. Pros: Automatic change detection; migrations keep schema in sync. Cons: Tracking large graphs hurts performance; stale data if long-lived context. Common mistakes: Mixing tracked and detached graphs; attaching wrong state. Best practices: Short-lived DbContext per request; explicit Entry().State when needed. Audience level: Junior.
Full explanation
DbContext tracks entities loaded in context. SaveChanges generates INSERT/UPDATE/DELETE. AsNoTracking skips tracking for read-only queries — faster, less memory.
Real example & use case
Report query uses AsNoTracking(); edit form loads entity with tracking for SaveChanges update.
Pros & cons
Pros: Automatic change detection; migrations keep schema in sync. Cons: Tracking large graphs hurts performance; stale data if long-lived context.
Common mistakes
Mixing tracked and detached graphs; attaching wrong state.
Best practices
Short-lived DbContext per request; explicit Entry().State when needed.
Follow-up questions
- How would you test EF Core Change Tracking?
- What metrics prove EF Core Change Tracking is healthy in prod?
- How does EF Core Change Tracking change at 10× traffic?