ef-core
Fornece as melhores práticas para usar o Entity Framework Core. Ajuda a otimizar o acesso e o gerenciamento de dados em aplicações .NET.
O que ela faz
Este agente ajuda você a escrever código melhor e mais eficiente para o Entity Framework Core, uma ferramenta para trabalhar com bancos de dados em C#.
Quando usar
- ✓Ao criar ou modificar seu código que usa Entity Framework Core.
- ✓Quando você quer garantir que seu código está rápido e seguro.
- ✓Se você está tendo problemas com o desempenho ou erros no banco de dados.
Exemplo do que pedir para a IA
“Como posso otimizar minhas consultas para evitar lentidão no banco de dados?”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
Ele compara seu código com um conjunto de regras e boas práticas. Se encontrar algo que pode ser melhorado, ele sugere como fazer.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add github/awesome-copilot --skill ef-coreOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/ef-core/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Boas Práticas do Entity Framework Core
Seu objetivo é me ajudar a seguir as melhores práticas ao trabalhar com o Entity Framework Core.
Design do Data Context
- Mantenha as classes
DbContextfocadas e coesas - Use injeção de construtor para opções de configuração
- Sobrescreva
OnModelCreatingpara configuração da Fluent API - Separe as configurações de entidade usando
IEntityTypeConfiguration - Considere usar o padrão
DbContextFactorypara aplicativos de console ou testes
Design de Entidade
- Use chaves primárias significativas (considere chaves naturais vs. substitutas)
- Implemente relacionamentos adequados (um-para-um, um-para-muitos, muitos-para-muitos)
- Use anotações de dados ou Fluent API para restrições e validações
- Implemente propriedades de navegação apropriadas
- Considere usar tipos de entidade de propriedade (owned entity types) para objetos de valor
Desempenho
- Use
AsNoTracking()para consultas somente leitura - Implemente paginação para grandes conjuntos de resultados com
Skip()eTake() - Use
Include()para carregar antecipadamente entidades relacionadas quando necessário - Considere projeção (
Select) para recuperar apenas os campos necessários - Use consultas compiladas para consultas executadas com frequência
- Evite problemas de consulta N+1 incluindo corretamente os dados relacionados
Migrações
- Crie migrações pequenas e focadas
- Nomeie as migrações de forma descritiva
- Verifique os scripts SQL de migração antes de aplicá-los em produção
- Considere usar pacotes de migração (migration bundles) para implantação
- Adicione semeadura de dados (data seeding) através de migrações quando apropriado
Consultas
- Use
IQueryablecom critério e entenda quando as consultas são executadas - Prefira consultas LINQ fortemente tipadas em vez de SQL bruto
- Use operadores de consulta apropriados (
Where,OrderBy,GroupBy) - Considere funções de banco de dados para operações complexas
- Implemente o padrão de especificações para consultas reutilizáveis
Rastreamento de Alterações e Salvamento
- Use estratégias de rastreamento de alterações apropriadas
- Agrupe suas chamadas
SaveChanges() - Implemente controle de concorrência para cenários multiusuário
- Considere usar transações para múltiplas operações
- Use tempos de vida de
DbContextapropriados (escopo para aplicativos web)
Segurança
- Evite injeção de SQL usando consultas parametrizadas
- Implemente permissões de acesso a dados apropriadas
- Tenha cuidado com consultas SQL brutas
- Considere criptografia de dados para informações sensíveis
- Use migrações para gerenciar permissões de usuários do banco de dados
Testes
- Use o provedor de banco de dados em memória para testes unitários
- Crie contextos de teste separados com SQLite para testes de integração
- Use mock de
DbContexteDbSetpara testes unitários puros - Teste migrações em ambientes isolados
- Considere testes de snapshot (snapshot testing) para alterações de modelo
Ao revisar meu código EF Core, identifique problemas e sugira melhorias que sigam essas boas práticas.
Perguntas frequentes
O que é Entity Framework Core?
É uma ferramenta que facilita a comunicação entre seu programa (escrito em C#) e um banco de dados, sem precisar escrever comandos SQL complexos.
O que são 'boas práticas'?
São as melhores maneiras conhecidas de fazer algo, que geralmente resultam em código mais rápido, seguro e fácil de manter.
Preciso saber muito sobre bancos de dados para usar isso?
Não, o agente foi feito para ajudar mesmo se você for iniciante com Entity Framework Core.
Detalhes
Popularidade
- Estrelas no GitHub
- 40 mil
- Posição no ranking
- #5129
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
acquire-codebase-knowledge
Ajuda seu agente a entender e documentar um projeto de código existente. É útil para novas pessoas entrarem no projeto ou para ter uma visão geral da arquitetura.
github/awesome-copilot
acreadiness-assess
Faz seu agente avaliar a prontidão de um projeto para IA e gerar um relatório. É útil para entender o quão bem um projeto está preparado para usar ferramentas de IA.
github/awesome-copilot
acreadiness-generate-instructions
Ajuda seu agente a criar instruções para ferramentas de IA baseadas em uma avaliação. É útil para melhorar a forma como a IA interage com o código e fecha lacunas identificadas.
github/awesome-copilot
acreadiness-policy
Faz seu agente ajudar a definir ou aplicar políticas para avaliação de projetos de IA. É útil para padronizar a forma como os projetos são avaliados e garantir conformidade.
github/awesome-copilot
Skills parecidas
benchmark-optimization-loop
Faz seu agente melhorar a velocidade de algo de forma medida. Ele testa várias versões e escolhe a mais rápida que ainda funciona corretamente.
affaan-m/ECC
change-impact
Ajuda seu agente a analisar o impacto de mudanças no código antes de fazê-las. Ele compara o planejado com o real depois, cobrindo caminhos, dados, testes e documentação. É útil para mudanças arriscadas ou que afetam várias partes do sistema.
affaan-m/ECC
click-path-audit
Faz seu agente rastrear todos os botões e interações do usuário para achar bugs. Ele encontra problemas onde funções parecem funcionar sozinhas, mas falham juntas. Útil quando bugs persistem mesmo após depuração.
affaan-m/ECC