Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Esta página descreveu alguns tópicos menos comuns relacionados ao teste de aplicativos EF Core.
EnableServiceProviderCaching
O EF Core usa um provedor de serviços interno para gerenciar os serviços necessários para operações de banco de dados, incluindo compilação de consulta, criação de modelos e outras funcionalidades principais. Por padrão, o EF Core armazena esses provedores de serviços internos em cache para melhorar o desempenho quando várias DbContext instâncias compartilham a mesma configuração.
O EnableServiceProviderCaching método controla se o EF Core armazena em cache o provedor de serviços interno:
public class ApplicationDbContext : DbContext
{
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder
.EnableServiceProviderCaching(false)
.UseSqlServer(@"Server=(localdb)\mssqllocaldb;Database=Test");
}
}
Comportamento padrão: o cache do provedor de serviços está habilitado por padrão (true). Isso significa:
- Os provedores de serviços são armazenados em cache e reutilizados entre
DbContextinstâncias com a mesma configuração - Melhor desempenho para aplicativos que criam muitas
DbContextinstâncias - Reduzir a sobrecarga de memória quando vários contextos compartilham configurações
Quando desabilitar o cache: desabilitar o cache do provedor de serviços diminuirá DbContext muito a criação e, na grande maioria dos casos, o comportamento padrão é recomendado. Se houver problemas com serviços internos incorretos usados, eles deverão ser corrigidos de uma maneira diferente. No entanto, se você estiver substituindo serviços para fins de teste, poderá desabilitar o cache do provedor de serviços (false) para garantir que cada teste obtenha um novo provedor de serviços.