EFEF Core Handbook

TEMEL

IEntityTypeConfiguration — Ayrı Config Sınıfları

Entity konfigürasyonlarını ayrı sınıflara ayırmak, DbContext'in OnModelCreating metodunu şişirmeden her entity'nin kurallarını kendi dosyasında yönetmeni sağlar.

Kullanım

// Ayrı config sınıfı
public class ProductConfiguration : IEntityTypeConfiguration<Product>
{
    public void Configure(EntityTypeBuilder<Product> builder)
    {
        builder.ToTable("Products", "catalog");
        builder.HasKey(p => p.Id);
        builder.Property(p => p.Name).IsRequired().HasMaxLength(200);
    }
}

// DbContext'te otomatik kayıt
modelBuilder.ApplyConfigurationsFromAssembly(Assembly.GetExecutingAssembly());

// Ya da tek tek
modelBuilder.ApplyConfiguration(new ProductConfiguration());

Dosya yapısı önerisi:

src/
└── MyApp.Infrastructure/
    └── Persistence/
        ├── AppDbContext.cs
        └── Configurations/
            ├── ProductConfiguration.cs
            ├── CategoryConfiguration.cs
            └── UserConfiguration.cs