ApplicationDbContext that implements multiple interfaces, including ISubsetDbContext (for specific DbSet access) and IUnitOfWork (for transaction management).ISubsetDbContext and IUnitOfWork resolve to the very same instance of ApplicationDbContext within any given request scope. This is because both are registered with a Scoped lifetime and explicitly retrieve ApplicationDbContext via provider.GetRequiredService<ApplicationDbContext>().IUnitOfWork into a pipeline behavior and ISubsetDbContext into another service within what I believe to be the same request scope, they appear to be receiving different instances of ApplicationDbContext. This is problematic because a transaction started by IUnitOfWork is then not shared with operations performed through ISubsetDbContext.