← ClaudeAtlas

ef-core-patternslisted

EF Core best practices reference — safe migrations, query optimization, configuration patterns, and common pitfalls.
zdanovichnick/dotnet-pilot · ★ 3 · AI & Automation · score 76
Install: claude install-skill zdanovichnick/dotnet-pilot
# EF Core Patterns Reference material for EF Core development. Used by `dnp-ef-migration-planner` and `dnp-planner`. ## Migration Safety ### Safe Operations - Adding a new table - Adding a nullable column - Adding a column with a default value - Adding an index - Renaming (with `migrationBuilder.RenameColumn` — preserves data) ### Dangerous Operations (require confirmation) - Dropping a column (data loss) - Changing column type (potential data truncation) - Adding NOT NULL column without default (fails on existing rows) - Dropping a table (data loss) - Removing an index (performance impact) ### Migration Best Practices - One migration per logical change - Never edit generated migration files manually - Always test with `--dry-run` before applying - Keep migrations small and reversible - Use `migrationBuilder.Sql()` for data migrations, not EF operations ## Configuration Patterns ### Fluent API (preferred) ```csharp public class UserConfiguration : IEntityTypeConfiguration<User> { public void Configure(EntityTypeBuilder<User> builder) { builder.HasKey(u => u.Id); builder.Property(u => u.Email).HasMaxLength(256).IsRequired(); builder.HasIndex(u => u.Email).IsUnique(); builder.HasMany(u => u.Orders).WithOne(o => o.User).HasForeignKey(o => o.UserId); } } ``` ### DbContext Registration ```csharp // In OnModelCreating: modelBuilder.ApplyConfigurationsFromAssembly(typeof(ApplicationDbContext).Assembly); ``` ## Query Optimization