Pular para o conteúdo
Skillpedia
Código em geral40 mil · #5129

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

https://github.com/github/awesome-copilot/blob/main/skills/ef-core/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/github/awesome-copilot/blob/main/skills/ef-core/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
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-core

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/ef-core/SKILL.md -o SKILL.md
Conteú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 DbContext focadas e coesas
  • Use injeção de construtor para opções de configuração
  • Sobrescreva OnModelCreating para configuração da Fluent API
  • Separe as configurações de entidade usando IEntityTypeConfiguration
  • Considere usar o padrão DbContextFactory para 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() e Take()
  • 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 IQueryable com 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 DbContext apropriados (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 DbContext e DbSet para 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

Descrição original do autor

Get best practices for Entity Framework Core

repo: github/awesome-copilot

Popularidade

Estrelas no GitHub
40 mil
Posição no ranking
#5129
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas