| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- using System.Data.Entity;
- using Abp.BackgroundJobs;
- using Abp.EntityHistory;
- using Abp.Notifications;
- using IwbZero.Authorization.Base.Permissions;
- using IwbZero.Authorization.Base.Roles;
- using IwbZero.Authorization.Base.SystemInfo;
- using IwbZero.Authorization.Base.Users;
- using IwbZero.Authorization.Roles;
- using IwbZero.Authorization.Users;
- using IwbZero.MultiTenancy;
- namespace IwbZero.EntityFramework
- {
- /// <summary>
- /// Extension methods for <see cref="DbModelBuilder"/>.
- /// </summary>
- public static class IwbZeroDbModelBuilderExtensions
- {
- /// <summary>
- /// Changes prefix for ABP tables (which is "Abp" by default).
- /// Can be null/empty string to clear the prefix.
- /// </summary>
- /// <typeparam name="TTenant">The type of the tenant entity.</typeparam>
- /// <typeparam name="TRole">The type of the role entity.</typeparam>
- /// <typeparam name="TUser">The type of the user entity.</typeparam>
- /// <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 ChangeAbpTablePrefix<TTenant, TRole, TUser>(this DbModelBuilder modelBuilder, string prefix, string schemaName = null)
- where TTenant : IwbTenant<TUser>
- where TRole : IwbSysRole<TUser>
- where TUser : IwbSysUser<TUser>
- {
- prefix = prefix ?? "";
- SetTableName<SysLog>(modelBuilder, prefix + "AuditLogs", schemaName);
- SetTableName<BackgroundJobInfo>(modelBuilder, prefix + "BackgroundJobs", schemaName);
- //SetTableName<Edition>(modelBuilder, prefix + "Editions", schemaName);
- SetTableName<EntityChange>(modelBuilder, prefix + "EntityChanges", schemaName);
- SetTableName<EntityChangeSet>(modelBuilder, prefix + "EntityChangeSets", schemaName);
- SetTableName<EntityPropertyChange>(modelBuilder, prefix + "EntityPropertyChanges", schemaName);
- //SetTableName<FeatureSetting>(modelBuilder, prefix + "Features", schemaName);
- //SetTableName<TenantFeatureSetting>(modelBuilder, prefix + "Features", schemaName);
- //SetTableName<EditionFeatureSetting>(modelBuilder, prefix + "Features", schemaName);
- //SetTableName<ApplicationLanguage>(modelBuilder, prefix + "Languages", schemaName);
- //SetTableName<ApplicationLanguageText>(modelBuilder, prefix + "LanguageTexts", 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<TRole>(modelBuilder, prefix + "Roles", schemaName);
- SetTableName<SysSetting>(modelBuilder, prefix + "Settings", schemaName);
- SetTableName<TTenant>(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<TUser>(modelBuilder, prefix + "Users", schemaName);
- SetTableName<UserAccount>(modelBuilder, prefix + "UserAccounts", schemaName);
- SetTableName<UserClaim>(modelBuilder, prefix + "UserClaims", schemaName);
- SetTableName<RoleClaim>(modelBuilder, prefix + "RoleClaims", schemaName);
- }
- private static void SetTableName<TEntity>(DbModelBuilder modelBuilder, string tableName, string schemaName)
- where TEntity : class
- {
- if (schemaName == null)
- {
- modelBuilder.Entity<TEntity>().ToTable(tableName);
- }
- else
- {
- modelBuilder.Entity<TEntity>().ToTable(tableName, schemaName);
- }
- }
- }
- }
|