| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- 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;
- /// <summary>
- /// Extension methods for <see cref="ModelBuilder"/>.
- /// </summary>
- public static class VzDbModelBuilderExtensions
- {
- /// <summary>
- /// 更改 系统 表的前缀(默认为“Sys_”)
- /// 可以为空/空字符串来清除前缀。
- /// </summary>
- /// <param name="modelBuilder">Model builder.</param>
- /// <param name="prefix">Table prefix, or null to clear prefix.</param>
- /// <param name="schemaName">Schema name</param>
- public static void ChangeTablePrefix(this ModelBuilder modelBuilder, string prefix = "Sys_", string schemaName = null)
- {
- prefix = prefix ?? "";
- SetTableName<AuditLog>(modelBuilder, prefix + "AuditLogs", schemaName);
- SetTableName<BackgroundJobInfo>(modelBuilder, prefix + "BackgroundJobs", schemaName);
- SetTableName<NotificationInfo>(modelBuilder, prefix + "Notifications", schemaName);
- SetTableName<NotificationSubscriptionInfo>(modelBuilder, prefix + "NotificationSubscriptions", schemaName);
- SetTableName<OrganizationUnit>(modelBuilder, prefix + "OrganizationUnits", schemaName);
- SetTableName<PermissionSetting>(modelBuilder, prefix + "Permissions", schemaName);
- SetTableName<RolePermissionSetting>(modelBuilder, prefix + "Permissions", schemaName);
- SetTableName<UserPermissionSetting>(modelBuilder, prefix + "Permissions", schemaName);
- SetTableName<Role>(modelBuilder, prefix + "Roles", schemaName);
- SetTableName<SysSetting>(modelBuilder, prefix + "Settings", schemaName);
- SetTableName<Tenant>(modelBuilder, prefix + "Tenants", schemaName);
- SetTableName<UserLogin>(modelBuilder, prefix + "UserLogins", schemaName);
- SetTableName<UserLoginAttempt>(modelBuilder, prefix + "UserLoginAttempts", schemaName);
- SetTableName<TenantNotificationInfo>(modelBuilder, prefix + "TenantNotifications", schemaName);
- SetTableName<UserNotificationInfo>(modelBuilder, prefix + "UserNotifications", schemaName);
- SetTableName<UserOrganizationUnit>(modelBuilder, prefix + "UserOrganizationUnits", schemaName);
- SetTableName<OrganizationUnitRole>(modelBuilder, prefix + "OrganizationUnitRoles", schemaName);
- SetTableName<UserRole>(modelBuilder, prefix + "UserRoles", schemaName);
- SetTableName<User>(modelBuilder, prefix + "Users", schemaName);
- SetTableName<UserAccount>(modelBuilder, prefix + "UserAccounts", schemaName);
- SetTableName<UserClaim>(modelBuilder, prefix + "UserClaims", schemaName);
- SetTableName<RoleClaim>(modelBuilder, prefix + "RoleClaims", schemaName);
- SetTableName<UserToken>(modelBuilder, prefix + "UserTokens", schemaName);
- SetTableName<WebhookEvent>(modelBuilder, prefix + "WebhookEvents", schemaName);
- SetTableName<WebhookSubscriptionInfo>(modelBuilder, prefix + "WebhookSubscriptions", schemaName);
- SetTableName<WebhookSendAttempt>(modelBuilder, prefix + "WebhookSendAttempts", schemaName);
- SetTableName<SysFunction>(modelBuilder, prefix + "Functions", schemaName);
- SetTableName<SysAttach>(modelBuilder, prefix + "Attaches", schemaName);
- SetTableName<SysAutoCompleteQuery>(modelBuilder, prefix + "AutoCompleteQueries", schemaName);
- SetTableName<SysCalendar>(modelBuilder, prefix + "Calendars", schemaName);
- SetTableName<SysHelp>(modelBuilder, prefix + "Helps", schemaName);
- SetTableName<SysState>(modelBuilder, prefix + "States", schemaName);
- //SetTableName<DynamicProperty>(modelBuilder, prefix + "DynamicProperties", schemaName);
- //SetTableName<DynamicPropertyValue>(modelBuilder, prefix + "DynamicPropertyValues", schemaName);
- //SetTableName<DynamicEntityProperty>(modelBuilder, prefix + "DynamicEntityProperties", schemaName);
- //SetTableName<DynamicEntityPropertyValue>(modelBuilder, prefix + "DynamicEntityPropertyValues", schemaName);
- //SetTableName<EntityChange>(modelBuilder, prefix + "EntityChanges", schemaName);
- //SetTableName<EntityChangeSet>(modelBuilder, prefix + "EntityChangeSets", schemaName);
- //SetTableName<EntityPropertyChange>(modelBuilder, prefix + "EntityPropertyChanges", schemaName);
- //SetTableName<Edition>(modelBuilder, prefix + "Editions", schemaName);
- //SetTableName<FeatureSetting>(modelBuilder, prefix + "Features", schemaName);
- //SetTableName<EditionFeatureSetting>(modelBuilder, prefix + "Features", schemaName);
- //SetTableName<TenantFeatureSetting>(modelBuilder, prefix + "Features", schemaName);
- //SetTableName<ApplicationLanguage>(modelBuilder, prefix + "Languages", schemaName);
- //SetTableName<ApplicationLanguageText>(modelBuilder, prefix + "LanguageTexts", schemaName);
- }
- internal static void SetTableName<TEntity>(this ModelBuilder modelBuilder, string tableName, string schemaName)
- where TEntity : class
- {
- if (schemaName == null)
- {
- modelBuilder.Entity<TEntity>().ToTable(tableName);
- }
- else
- {
- modelBuilder.Entity<TEntity>().ToTable(tableName, schemaName);
- }
- }
- }
|