EF Core Change Tracking
Design a small subsystem that relies on EF Core Change Tracking. Outline components, data flow, failure modes, and metrics.
Answers use simple, clear English.
Quick interview answer
Use EF Core Change Tracking as the core idea. Example shape: Report query uses AsNoTracking(); edit form loads entity with tracking for SaveChanges update..
Detailed answer
Use EF Core Change Tracking as the core idea. Example shape: Report query uses AsNoTracking(); edit form loads entity with tracking for SaveChanges update.. Watch for: Tracking large graphs hurts performance; stale data if long-lived context.. Measure success via latency/error/saturation. 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: Senior.
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?