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 { /// /// Extension methods for . /// public static class IwbZeroDbModelBuilderExtensions { /// /// Changes prefix for ABP tables (which is "Abp" by default). /// Can be null/empty string to clear the prefix. /// /// The type of the tenant entity. /// The type of the role entity. /// The type of the user entity. /// Model builder. /// Table prefix, or null to clear prefix. /// Schema name public static void ChangeAbpTablePrefix(this DbModelBuilder modelBuilder, string prefix, string schemaName = null) where TTenant : IwbTenant where TRole : IwbSysRole where TUser : IwbSysUser { prefix = prefix ?? ""; SetTableName(modelBuilder, prefix + "AuditLogs", schemaName); SetTableName(modelBuilder, prefix + "BackgroundJobs", schemaName); //SetTableName(modelBuilder, prefix + "Editions", schemaName); SetTableName(modelBuilder, prefix + "EntityChanges", schemaName); SetTableName(modelBuilder, prefix + "EntityChangeSets", schemaName); SetTableName(modelBuilder, prefix + "EntityPropertyChanges", 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); SetTableName(modelBuilder, prefix + "Notifications", schemaName); SetTableName(modelBuilder, prefix + "NotificationSubscriptions", schemaName); //SetTableName(modelBuilder, prefix + "OrganizationUnits", 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); } private static void SetTableName(DbModelBuilder modelBuilder, string tableName, string schemaName) where TEntity : class { if (schemaName == null) { modelBuilder.Entity().ToTable(tableName); } else { modelBuilder.Entity().ToTable(tableName, schemaName); } } } }