protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); foreach (var entityType in modelBuilder.Model.GetEntityTypes()) { ConfigureGlobalFiltersMethodInfo .MakeGenericMethod(entityType.ClrType) .Invoke(this, new object[] { modelBuilder, entityType }); foreach (var property in entityType.GetProperties()) { if (property.ClrType.IsEnum) { var attrs = property.PropertyInfo.GetCustomAttribute(typeof(EnumToStringAttribute)); if (attrs != null) { ApplyEnumToStringMethodInfo .MakeGenericMethod(entityType.ClrType, property.ClrType) .Invoke(this, new object[] { modelBuilder, property }); } } } } }
protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); foreach (var entityType in modelBuilder.Model.GetEntityTypes()) { if (entityType.ClrType.BaseType == typeof(BaseEntity)) { ConfigureGlobalFiltersMethodInfo .MakeGenericMethod(entityType.ClrType) .Invoke(this, new object[] { modelBuilder }); } } }
protected override void OnModelCreating(ModelBuilder modelBuilder) { foreach (var relationship in modelBuilder.Model.GetEntityTypes().SelectMany(e => e.GetForeignKeys())) { relationship.DeleteBehavior = DeleteBehavior.Restrict; } modelBuilder.ApplyConfigurationsFromAssembly(Assembly.GetExecutingAssembly()); base.OnModelCreating(modelBuilder); foreach (var entityType in modelBuilder.Model.GetEntityTypes()) { ConfigureGlobalFiltersMethodInfo .MakeGenericMethod(entityType.ClrType) .Invoke(this, new object[] { modelBuilder, entityType }); } }
protected override void OnModelCreating(ModelBuilder modelBuilder) { ////自动创建数据库表Person //modelBuilder.Entity<Community>().ToTable("Community", "dbo"); //modelBuilder.Entity<House>().ToTable("House", "dbo"); //modelBuilder.Entity<Owner>().ToTable("Owner", "dbo"); //base.OnModelCreating(modelBuilder); // DbContext 模型创建的时候 base.OnModelCreating(modelBuilder); // 遍历所有 DbContext 定义的实体 foreach (var entityType in modelBuilder.Model.GetEntityTypes()) { ConfigureGlobalFiltersMethodInfo .MakeGenericMethod(entityType.ClrType) .Invoke(this, new object[] { modelBuilder, entityType }); } }