In EF6 we usually able to use this way to configure the Entity.
public class AccountMap : EntityTypeConfiguration
{
public AccountMap()
You can achieve this through some simple additional types:
internal static class ModelBuilderExtensions
{
public static void AddConfiguration(
this ModelBuilder modelBuilder,
DbEntityConfiguration entityConfiguration) where TEntity : class
{
modelBuilder.Entity(entityConfiguration.Configure);
}
}
internal abstract class DbEntityConfiguration where TEntity : class
{
public abstract void Configure(EntityTypeBuilder entity);
}
Usage:
internal class UserConfiguration : DbEntityConfiguration
{
public override void Configure(EntityTypeBuilder entity)
{
entity.ToTable("User");
entity.HasKey(c => c.Id);
entity.Property(c => c.Username).HasMaxLength(255).IsRequired();
// etc.
}
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.AddConfiguration(new UserConfiguration());
}