Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
På den här sidan beskrivs några mindre vanliga ämnen som rör testning av EF Core-program.
EnableServiceProviderCaching
EF Core använder en intern tjänstleverantör för att hantera tjänster som krävs för databasåtgärder, inklusive frågekompilering, modellskapande och andra kärnfunktioner. Som standard cachelagrar EF Core dessa interna tjänstleverantörer för att förbättra prestanda när flera DbContext instanser delar samma konfiguration.
Metoden EnableServiceProviderCaching styr om EF Core cachelagrar den interna tjänstleverantören:
public class ApplicationDbContext : DbContext
{
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder
.EnableServiceProviderCaching(false)
.UseSqlServer(@"Server=(localdb)\mssqllocaldb;Database=Test");
}
}
Standardbeteende: Cachelagring av tjänstleverantörer är aktiverat som standard (true). Detta innebär att:
- Tjänstleverantörer lagras i cache och återanvänds över
DbContextinstanser med samma konfiguration - Bättre prestanda för program som skapar många
DbContextinstanser - Lägre minneskostnader när flera kontexter delar konfigurationer
När du inaktiverar cachelagring: Om du inaktiverar cachelagring av tjänstleverantörer blir det mycket långsammare DbContext att skapa och i de allra flesta fall rekommenderas standardbeteendet. Om det finns problem med felaktiga interna tjänster som används bör de åtgärdas på ett annat sätt. Men om du ersätter tjänster i testsyfte kan du inaktivera cachelagring av tjänstleverantörer (false) för att säkerställa att varje test får en ny tjänstleverantör.