Start here. This is the direct spoken answer to practice first.
Why this question matters
Context pooling reuses DbContext instances after EF Core resets its own internal state. Application-owned fields and manually changed driver state still require deliberate handling because the same object can serve an unrelated request later.
AddDbContextPool reuses initialized context instances to reduce setup and allocation overhead; it is separate from database connection pooling. I would not treat a pooled context as fresh request storage. Tenant id, user id, feature flags, or culture kept on the context can leak into a later request unless they are assigned safely every time. I enable pooling only after measuring that context setup matters and proving that request-specific state cannot cross scopes.