InstancePerLifetimeScope() , not HttpRequestScoped() , will give the desired result.
However, there is a caveat - if the IDatabase requires deletion or depends on what requires deletion, this will not happen if you allow it from the ApplicationContainer. Better to do:
using (var cacheRemovalScope = _containerProvider.ApplicationContainer.BeginLifetimeScope()) { var dataContext = cacheRemovalScope.Resolve<IDatabase>();
source share