Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Op deze pagina worden enkele minder voorkomende onderwerpen beschreven met betrekking tot het testen van EF Core-toepassingen.
EnableServiceProviderCaching
EF Core maakt gebruik van een interne serviceprovider voor het beheren van services die vereist zijn voor databasebewerkingen, waaronder het compileren van query's, het bouwen van modellen en andere kernfunctionaliteit. Ef Core slaat deze interne serviceproviders standaard in de cache op om de prestaties te verbeteren wanneer meerdere DbContext exemplaren dezelfde configuratie delen.
De EnableServiceProviderCaching-methode bepaalt of EF Core de interne serviceprovider in de cache opneemt.
public class ApplicationDbContext : DbContext
{
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder
.EnableServiceProviderCaching(false)
.UseSqlServer(@"Server=(localdb)\mssqllocaldb;Database=Test");
}
}
Standaardgedrag: caching van serviceproviders is standaard ingeschakeld (true). Dit betekent:
- Serviceproviders worden in de cache opgeslagen en opnieuw gebruikt in
DbContextmeerdere exemplaren met dezelfde configuratie - Betere prestaties voor toepassingen die veel
DbContextexemplaren maken - Lagere geheugenoverhead wanneer meerdere contexten configuraties delen
Wanneer u caching uitschakelt: het uitschakelen van caching van serviceproviders vertraagt het maken aanzienlijk DbContext en in het overgrote deel van de gevallen wordt het standaardgedrag aanbevolen. Als er problemen zijn met onjuiste interne services die worden gebruikt, moeten ze op een andere manier worden opgelost. Maar als u services voor testdoeleinden vervangt, kunt u caching van serviceproviders uitschakelen (false) om ervoor te zorgen dat elke test een nieuwe serviceprovider krijgt.