EntityFramework 6.x
protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); modelBuilder.Configurations.AddFromAssembly(typeof(MyDbContext).Assembly); }
EF Core <= 2.1
public static class ModelBuilderExtensions { public static void ApplyAllConfigurations(this ModelBuilder modelBuilder) { var typesToRegister = Assembly.GetExecutingAssembly().GetTypes().Where(t => t.GetInterfaces() .Any(gi => gi.IsGenericType && gi.GetGenericTypeDefinition() == typeof(IEntityTypeConfiguration<>))).ToList(); foreach (var type in typesToRegister) { dynamic configurationInstance = Activator.CreateInstance(type); modelBuilder.ApplyConfiguration(configurationInstance); } } } protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); modelBuilder.ApplyAllConfigurations(); }
EF Core >= 2.2
protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); modelBuilder.ApplyConfigurationsFromAssembly(typeof(UserConfiguration).Assembly); // Here UseConfiguration is any IEntityTypeConfiguration }
转自:https://stackoverflow.com/questions/51842709/modelbuilder-configurations-addfromassembly-in-ef-core