Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Na tej stronie opisano mniej typowe tematy związane z testowaniem aplikacji EF Core.
EnableServiceProviderCaching
Program EF Core używa wewnętrznego dostawcy usług do zarządzania usługami wymaganymi do wykonywania operacji bazy danych, w tym kompilacji zapytań, kompilowania modelu i innych podstawowych funkcji. Domyślnie program EF Core buforuje tych wewnętrznych dostawców usług w celu zwiększenia wydajności, gdy wiele DbContext wystąpień współużytkuje tę samą konfigurację.
Metoda EnableServiceProviderCaching określa, czy program EF Core buforuje wewnętrznego dostawcę usług:
public class ApplicationDbContext : DbContext
{
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder
.EnableServiceProviderCaching(false)
.UseSqlServer(@"Server=(localdb)\mssqllocaldb;Database=Test");
}
}
Domyślne zachowanie: buforowanie dostawcy usług jest domyślnie włączone (true). Oznacza to:
- Dostawcy usług są przechowywani w pamięci podręcznej i ponownie używani w
DbContextwystąpieniach z tą samą konfiguracją - Lepsza wydajność aplikacji tworzących wiele
DbContextwystąpień - Mniejsze obciążenie pamięcią, gdy wiele kontekstów współużytkuje konfiguracje
Kiedy wyłączyć buforowanie: wyłączenie buforowania przez dostawcę usług znacznie spowolni DbContext proces tworzenia, dlatego w większości przypadków zalecane jest pozostawienie ustawień domyślnych. Jeśli występują problemy z nieprawidłowymi usługami wewnętrznymi, należy je rozwiązać w inny sposób. Jeśli jednak zastąpisz usługi na potrzeby testowania, możesz wyłączyć buforowanie dostawcy usług (false), aby upewnić się, że każdy test otrzyma nowego dostawcę usług.