Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- protected override void OnModelCreating(DbModelBuilder modelBuilder)
- {
- RunConventions(modelBuilder, typeof(GalaxyUserMap));
- }
- public void RunConventions(DbModelBuilder modelBuilder, Type assemblyClassType)
- {
- // Change default conventions for cascade deletes
- modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>();
- // Id property in everyclass is named class + Id (i.e CustomerId, JobId, VendorId)
- // Id is always first column in table
- // Could also explicitly determine as key using .Configure(p => p.IsKey() but EF already looks for property of name Id as primary key
- modelBuilder.Properties()
- .Where(p => p.Name == "Id")
- .Configure(p => p.HasColumnOrder(0).HasColumnName((p.ClrPropertyInfo.ReflectedType == null ? "" : p.ClrPropertyInfo.ReflectedType.Name) + "Id"));
- // Add Domain Entity Mapping Configurations
- var typesToRegister = Assembly.GetAssembly(assemblyClassType).GetTypes()
- .Where(type => type.Namespace != null);
- foreach (Type type in typesToRegister)
- {
- dynamic configurationInstance = Activator.CreateInstance(type);
- modelBuilder.Configurations.Add(configurationInstance);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement