Config EF Core (C#)
Overview
Executar setup determinístico da infraestrutura EF Core no backend C#, com ConnectionString configurada via appsettings.json, migrations, Docker Compose para Postgres e configurações de mapeamento via Fluent API.
Equivalente ao config-prisma do stack TypeScript e config-jpa-kt do stack Kotlin, adaptado para o ecossistema .NET.
Workflow
- Confirmar que o projeto contém
.csprojno Backend e Infrastructure. - Configurar dependências EF Core no Infrastructure:
Microsoft.EntityFrameworkCoreNpgsql.EntityFrameworkCore.PostgreSQL(provider Postgres)
- Criar/Ajustar
appsettings.jsoncomConnectionStrings. - Criar
docker-compose.ymlpara Postgres compatível com as strings de conexão. - Criar classe
AppDbContextherdando deDbContext. - Organizar mapeamentos na pasta
Persistence/Configurations/implementandoIEntityTypeConfiguration<T>. - Criar migration inicial de bootstrap:
dotnet ef migrations add InitialCreate. - Validar que a aplicação inicia e aplica migrations em ambiente de Dev.
O que o setup garante
- Dependências no Infrastructure:
Microsoft.EntityFrameworkCoreNpgsql.EntityFrameworkCore.PostgreSQL
appsettings.jsoncom:ConnectionStrings:DefaultConnectionvia envDATABASE_URL(se possível mapeado)
docker-compose.ymlcom Postgres alinhado às credenciais locais.- Pasta
Persistence/Migrations/com a primeira migração. - Injeção de dependência no
Program.csviaAddDbContext<AppDbContext>.
Arquivos críticos
src/Project.Infrastructure/Persistence/Contexts/AppDbContext.cssrc/Project.Backend/appsettings.jsonsrc/Project.Infrastructure/Persistence/Configurations/*.Configuration.csdocker-compose.yml.env/.env.example
Commands
Instalar o CLI dotnet-ef (requerido para migrations):
dotnet tool install --global dotnet-ef
Gerar migration (no root):
dotnet ef migrations add <MigrationName> --project src/Project.Infrastructure --startup-project src/Project.Backend --output-dir Persistence/Migrations
Aplicar no banco local:
dotnet ef database update --project src/Project.Infrastructure --startup-project src/Project.Backend
Remover última migration:
dotnet ef migrations remove --project src/Project.Infrastructure --startup-project src/Project.Backend
Resources
agents/openai.yaml: Configuração do agente.scripts/init-efcore-cs.mjs: Script de automação (placeholder).assets/efcore-template-cs/: Template base para DbContext e mapeamentos.references/efcore-init-checklist-cs.md: Checklist operacional detalhado.
Global Standards
- Consultar
../skills-standards.mdpara padrões globais de nomenclatura C#.