Ativado ao configurar classes de entidade no DbContext (Entity Configuration) ou criar e aplicar migrações (EF Core Migrations) na camada de Infraestrutura do .NET 8.
65
78%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./plugins/dotnet-clean-arch/skills/efcore-config-migration-enforcer/SKILL.mdEsta habilidade orienta a configuração do Entity Framework Core (EF Core) no .NET 8, focando em boas práticas de isolamento de mapeamento de entidades (Fluent API), suporte a modelos de domínio ricos do DDD e governança na criação e execução de migrações.
Para garantir que o domínio rico e o encapsulamento não sejam comprometidos pela persistência, siga as diretrizes abaixo:
Configurações Isoladas (Fluent API):
OnModelCreating do DbContext.IEntityTypeConfiguration<TEntity> na camada de Infra.public class MaquinaConfiguration : IEntityTypeConfiguration<Maquina> { ... }.builder.ApplyConfigurationsFromAssembly(Assembly.GetExecutingAssembly()) no DbContext.Persistência de Propriedades com Encapsulamento:
{ get; private set; }), o EF Core é capaz de ler e escrever diretamente nos campos ou propriedades de apoio automaticamente.IReadOnlyCollection<TEntity>).Mapeamento de Value Objects:
HasConversion) para mapear Value Objects simples que contêm um único valor para tipos primitivos no banco de dados..OwnsOne() ou .OwnsMany() para Value Objects com múltiplos atributos, garantindo que suas colunas sejam criadas na mesma tabela da entidade principal ou em tabelas associadas.Chaves e Índices:
.HasKey(...)..HasIndex(...) para propriedades de negócio que representam identificadores exclusivos (como código da máquina, e-mail do usuário ou número de série).A geração de migrações deve seguir um fluxo controlado para evitar alterações destrutivas acidentais ou migrações vazias:
Compilação do Projeto:
dotnet build) com sucesso antes de tentar gerar uma nova migração.Comando de Migração e Nomenclatura:
v<numero_da_migration>_<nome_da_entidade_ou_agregador>_<acao_resumida>.v1_usuario_criar (gerando o arquivo físico 20260623163330_v1_usuario_criar.cs)v2_usuario_adicionar_criptografia (gerando o arquivo físico 20260624155522_v2_usuario_adicionar_criptografia.cs)dotnet ef migrations add v1_usuario_criar --project src/MachineReturn.Infra --startup-project src/MachineReturn.APIRevisão da Migração Gerada:
xxxx_NomeDaMigracao.cs) e o arquivo snapshot do modelo.DropColumn, DropTable) para evitar perda de dados em ambientes de staging/produção.Resiliência na Conexão:
EnableRetryOnFailure para PostgreSQL).Aplicação de Migrações em Desenvolvimento:
context.Database.Migrate().1cbe5bc
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.