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