using Abp.BackgroundJobs; using Abp.Notifications; using Abp.Webhooks; using Microsoft.EntityFrameworkCore; using VberZero.BaseSystem; using VberZero.BaseSystem.MultiTenancy; using VberZero.BaseSystem.Organizations; using VberZero.BaseSystem.Roles; using VberZero.BaseSystem.Users; namespace VberZero.EntityFramework; /// /// Extension methods for . /// public static class VzDbModelBuilderExtensions { /// /// 更改 系统 表的前缀(默认为“Sys_”) /// 可以为空/空字符串来清除前缀。 /// /// Model builder. /// Table prefix, or null to clear prefix. /// Schema name public static void ChangeTablePrefix(this ModelBuilder modelBuilder, string prefix = "Sys_", string schemaName = null) { prefix = prefix ?? ""; SetTableName(modelBuilder, prefix + "AuditLogs", schemaName); SetTableName(modelBuilder, prefix + "BackgroundJobs", schemaName); SetTableName(modelBuilder, prefix + "Notifications", schemaName); SetTableName(modelBuilder, prefix + "NotificationSubscriptions", schemaName); SetTableName(modelBuilder, prefix + "OrganizationUnits", schemaName); SetTableName(modelBuilder, prefix + "Permissions", schemaName); SetTableName(modelBuilder, prefix + "Permissions", schemaName); SetTableName(modelBuilder, prefix + "Permissions", schemaName); SetTableName(modelBuilder, prefix + "Roles", schemaName); SetTableName(modelBuilder, prefix + "Settings", schemaName); SetTableName(modelBuilder, prefix + "Tenants", schemaName); SetTableName(modelBuilder, prefix + "UserLogins", schemaName); SetTableName(modelBuilder, prefix + "UserLoginAttempts", schemaName); SetTableName(modelBuilder, prefix + "TenantNotifications", schemaName); SetTableName(modelBuilder, prefix + "UserNotifications", schemaName); SetTableName(modelBuilder, prefix + "UserOrganizationUnits", schemaName); SetTableName(modelBuilder, prefix + "OrganizationUnitRoles", schemaName); SetTableName(modelBuilder, prefix + "UserRoles", schemaName); SetTableName(modelBuilder, prefix + "Users", schemaName); SetTableName(modelBuilder, prefix + "UserAccounts", schemaName); SetTableName(modelBuilder, prefix + "UserClaims", schemaName); SetTableName(modelBuilder, prefix + "RoleClaims", schemaName); SetTableName(modelBuilder, prefix + "UserTokens", schemaName); SetTableName(modelBuilder, prefix + "WebhookEvents", schemaName); SetTableName(modelBuilder, prefix + "WebhookSubscriptions", schemaName); SetTableName(modelBuilder, prefix + "WebhookSendAttempts", schemaName); SetTableName(modelBuilder, prefix + "Functions", schemaName); SetTableName(modelBuilder, prefix + "Attaches", schemaName); SetTableName(modelBuilder, prefix + "AutoCompleteQueries", schemaName); SetTableName(modelBuilder, prefix + "Calendars", schemaName); SetTableName(modelBuilder, prefix + "Helps", schemaName); SetTableName(modelBuilder, prefix + "States", schemaName); //SetTableName(modelBuilder, prefix + "DynamicProperties", schemaName); //SetTableName(modelBuilder, prefix + "DynamicPropertyValues", schemaName); //SetTableName(modelBuilder, prefix + "DynamicEntityProperties", schemaName); //SetTableName(modelBuilder, prefix + "DynamicEntityPropertyValues", schemaName); //SetTableName(modelBuilder, prefix + "EntityChanges", schemaName); //SetTableName(modelBuilder, prefix + "EntityChangeSets", schemaName); //SetTableName(modelBuilder, prefix + "EntityPropertyChanges", schemaName); //SetTableName(modelBuilder, prefix + "Editions", schemaName); //SetTableName(modelBuilder, prefix + "Features", schemaName); //SetTableName(modelBuilder, prefix + "Features", schemaName); //SetTableName(modelBuilder, prefix + "Features", schemaName); //SetTableName(modelBuilder, prefix + "Languages", schemaName); //SetTableName(modelBuilder, prefix + "LanguageTexts", schemaName); } internal static void SetTableName(this ModelBuilder modelBuilder, string tableName, string schemaName) where TEntity : class { if (schemaName == null) { modelBuilder.Entity().ToTable(tableName); } else { modelBuilder.Entity().ToTable(tableName, schemaName); } } }