/// <summary> /// Creat model. /// </summary> /// <param name="modelBuilder">model builder</param> protected override void OnModelCreating(DbModelBuilder modelBuilder) { try { base.OnModelCreating(modelBuilder); OnUserModelCreating(modelBuilder); OnAcvtivityModelCreating(modelBuilder); OnNewsModelCreating(modelBuilder); OnOccurrenceModelCreating(modelBuilder); OnRessourceModelCreating(modelBuilder); OnCountryModelCreating(modelBuilder); OnSectionModelCreating(modelBuilder); OnNewsletterModelCreating(modelBuilder); OnAboutModelCreating(modelBuilder); OnStepModelCreating(modelBuilder); modelBuilder.HasDefaultSchema(ConfigurationManagerHelper.GetAppSettingsToString(Constant.OmsDefaultSchema, string.Empty)); modelBuilder.Properties().Where(p => p.PropertyType == typeof(string) && p.GetCustomAttributes(typeof(MaxLengthAttribute), false).Length == 0).Configure(p => p.HasMaxLength(int.MaxValue)); var entityMethod = typeof(DbModelBuilder).GetMethod("Entity"); var activeServices = ServiceActivation.GetAllActivatedServices().ToList(); foreach (var service in activeServices) { var entityAssembly = ServiceSettings.GetEntityAssembly(service); var dependencies = ServiceSettings.GetAllServiceDependencies(service).ToSystemTypeList(entityAssembly); foreach (var type in dependencies) { if (entityMethod != null) { entityMethod.MakeGenericMethod(type).Invoke(modelBuilder, new object[] { }); } } var configs = ServiceSettings.GetAllServiceConfigurationDependencies(service).ToSystemTypeList(entityAssembly); foreach (var type in configs) { dynamic configurationInstance = Activator.CreateInstance(type); modelBuilder.Configurations.Add(configurationInstance); } } } catch (Exception ex) { throw new ArgumentNullException(ex.Message); } }