Questão de Programação — .Net — FUNDATEC 2025
Programação.Net
- Código
- qg475007
- Banca
- FUNDATEC
- Órgão
- PROCERGS
- Ano
- 2025
- Nível
- Superior
- Cargo
- Analista em Computação/Ênfase em Programação de Sistemas na Tecnologia Microsoft
Em uma interface de programação de aplicações (API) ASP.NET Core com Entity Framework Core (EF Core) em produção, deseja-se evitar concorrência indevida e dependência cativa envolvendo DbContext. Qual é a adequada configuração de lifetimes?
- ADbContext Scoped (por requisição Hypertext Transfer Protocol - HTTP) e repositórios também Scoped, garantindo instância isolada por request e evitando capturar serviços de vida curta em serviços de vida longa.
- BRegistrar DbContext como Singleton por ser "thread-safe" e maximizar cache de primeiro nível, mantendo uma única instância global que "aproveita" o pool de conexões como parte do próprio contexto.
- CDbContext Transient com repositórios Singleton, usando repositórios como ponto central estável enquanto o contexto é recriado a cada injeção.
- DDbContext Singleton e ILogger Scoped, "equilibrando" persistência do contexto com logs por requisição, assumindo compartilhamento seguro de estado entre threads.
- EDbContext Scoped e loggers Transient "para capturar contexto por chamada", partindo da premissa de que loggers devem variar de instância a cada log e que scopes não são suportados por logging Singleton.