EF 4.1 RTM - EntityTypeConfiguration

I use EF Code First CTP5 with dedicated mapping classes for each object, for example:

public class UserMapping : EntityTypeConfiguration<User> { public UserMapping() { ToTable("Users"); HasKey(t => t.ID); Property(t => t.ID).HasColumnName("user_id"); Property(t => t.Name).HasColumnName("name"); } } 

And download them as Jonas Cannehag describes here: http://areaofinterest.wordpress.com/2010/12/08/dynamically-load-entity-configurations-in-ef-codefirst-ctp5/

But this does not work in RTM, and I could not figure out how to use the highlighted mapping classes. You have?: -)

+6
source share
1 answer
 public class DataContext : DbContext { ... protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Configurations.Add(new UserMapping()); base.OnModelCreating(modelBuilder); } } 

dynamic version (probably should pass an extensive test before being put into production)

 protected override void OnModelCreating(DbModelBuilder modelBuilder) { var typesToRegister = Assembly.GetExecutingAssembly().GetTypes().Where( type => type.BaseType.IsGenericType && type.BaseType.GetGenericTypeDefinition() == typeof (EntityTypeConfiguration<>)); foreach (object configurationInstance in typesToRegister.Select(Activator.CreateInstance)) { modelBuilder.Configurations.Add((dynamic) configurationInstance); } base.OnModelCreating(modelBuilder); } 
+16
source

Source: https://habr.com/ru/post/886251/


All Articles