Ответ 1
Вы можете создать один класс конфигурации для каждого объекта, полученный из EntityTypeConfiguration<TEntity>
, и поместить эти классы в отдельные файлы. В производном DbContext
вы добавляете экземпляры этих классов конфигурации в построитель моделей. Пример:
public class UserConfiguration : EntityTypeConfiguration<User>
{
public UserConfiguration()
{
HasKey(u => u.UserName);
Property(u => u.UserName)
.HasMaxLength(50)
.IsRequired();
// etc.
}
}
public class RoleConfiguration : EntityTypeConfiguration<Role>
{
public RoleConfiguration()
{
HasKey(r => r.RoleName);
// etc.
}
}
Производный контекст:
public class MyContext : DbContext
{
//...
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Configurations.Add(new UserConfiguration());
modelBuilder.Configurations.Add(new RoleConfiguration());
}
}
Существует также ComplexTypeConfiguration<T>
, который вы можете использовать для конфигурирования сложных типов.