From 2d8ea886f69f6df8c1497bef16e0bc5144d9dd90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Sun, 4 Feb 2018 14:21:11 +0300 Subject: [PATCH] Refactor Identity table prefix and schema --- .../Volo/Abp/Identity/AbpIdentityConsts.cs | 9 +++ .../EntityFrameworkCore/IdentityDbContext.cs | 7 +-- ...IdentityDbContextModelBuilderExtensions.cs | 60 ++++++++++--------- 3 files changed, 44 insertions(+), 32 deletions(-) create mode 100644 src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityConsts.cs diff --git a/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityConsts.cs b/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityConsts.cs new file mode 100644 index 0000000000..9998016302 --- /dev/null +++ b/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityConsts.cs @@ -0,0 +1,9 @@ +namespace Volo.Abp.Identity +{ + public static class AbpIdentityConsts + { + public const string DefaultDbTablePrefix = "Identity"; + + public const string DefaultDbSchema = null; + } +} diff --git a/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IdentityDbContext.cs b/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IdentityDbContext.cs index dd24a4bdcc..64fa8f9bb3 100644 --- a/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IdentityDbContext.cs +++ b/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IdentityDbContext.cs @@ -8,9 +8,9 @@ namespace Volo.Abp.Identity.EntityFrameworkCore /// public class IdentityDbContext : AbpDbContext, IIdentityDbContext { - public static string TablePrefix { get; set; } = "Identity"; + public static string TablePrefix { get; set; } = AbpIdentityConsts.DefaultDbTablePrefix; - public static string Schema { get; set; } + public static string Schema { get; set; } = AbpIdentityConsts.DefaultDbSchema; /// /// Gets or sets the of Users. @@ -66,8 +66,7 @@ namespace Volo.Abp.Identity.EntityFrameworkCore protected override void OnModelCreating(ModelBuilder builder) { base.OnModelCreating(builder); - - this.ConfigureIdentity(builder, TablePrefix, Schema); + builder.ConfigureAbpIdentity(TablePrefix, Schema); } } } \ No newline at end of file diff --git a/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IdentityDbContextModelBuilderExtensions.cs b/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IdentityDbContextModelBuilderExtensions.cs index c1b8eaa597..8c17c715d8 100644 --- a/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IdentityDbContextModelBuilderExtensions.cs +++ b/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IdentityDbContextModelBuilderExtensions.cs @@ -1,14 +1,18 @@ -using System; -using JetBrains.Annotations; +using JetBrains.Annotations; using Microsoft.EntityFrameworkCore; namespace Volo.Abp.Identity.EntityFrameworkCore { public static class IdentityDbContextModelBuilderExtensions { - public static void ConfigureIdentity(this IIdentityDbContext dbContext, ModelBuilder builder, string tablePrefix = "", [CanBeNull] string schema = null) + public static void ConfigureAbpIdentity( + [NotNull] this ModelBuilder builder, + [CanBeNull] string tablePrefix = AbpIdentityConsts.DefaultDbTablePrefix, + [CanBeNull] string schema = AbpIdentityConsts.DefaultDbSchema) { - if (tablePrefix.IsNullOrWhiteSpace()) + Check.NotNull(builder, nameof(builder)); + + if (tablePrefix == null) { tablePrefix = ""; } @@ -40,18 +44,6 @@ namespace Volo.Abp.Identity.EntityFrameworkCore b.HasIndex(u => u.NormalizedEmail); }); - builder.Entity(b => - { - b.ToTable(tablePrefix + "Roles", schema); - - b.Property(r => r.Name).IsRequired().HasMaxLength(IdentityRoleConsts.MaxNameLength); - b.Property(r => r.NormalizedName).IsRequired().HasMaxLength(IdentityRoleConsts.MaxNormalizedNameLength); - - b.HasMany(r => r.Claims).WithOne().HasForeignKey(rc => rc.RoleId).IsRequired(); - - b.HasIndex(r => r.NormalizedName); - }); - builder.Entity(b => { b.ToTable(tablePrefix + "UserClaims", schema); @@ -62,21 +54,11 @@ namespace Volo.Abp.Identity.EntityFrameworkCore b.HasIndex(uc => uc.UserId); }); - builder.Entity(b => - { - b.ToTable(tablePrefix + "RoleClaims", schema); - - b.Property(uc => uc.ClaimType).HasMaxLength(IdentityRoleClaimConsts.MaxClaimTypeLength).IsRequired(); - b.Property(uc => uc.ClaimValue).HasMaxLength(IdentityRoleClaimConsts.MaxClaimValueLength); - - b.HasIndex(uc => uc.RoleId); - }); - builder.Entity(b => { b.ToTable(tablePrefix + "UserRoles", schema); - b.HasKey(ur => new {ur.UserId, ur.RoleId}); + b.HasKey(ur => new { ur.UserId, ur.RoleId }); b.HasOne().WithMany().HasForeignKey(ur => ur.RoleId).IsRequired(); b.HasOne().WithMany(u => u.Roles).HasForeignKey(ur => ur.UserId).IsRequired(); @@ -88,7 +70,7 @@ namespace Volo.Abp.Identity.EntityFrameworkCore { b.ToTable(tablePrefix + "UserLogins", schema); - b.HasKey(x => new {x.UserId, x.LoginProvider}); + b.HasKey(x => new { x.UserId, x.LoginProvider }); b.Property(ul => ul.LoginProvider).HasMaxLength(IdentityUserLoginConsts.MaxLoginProviderLength).IsRequired(); b.Property(ul => ul.ProviderKey).HasMaxLength(IdentityUserLoginConsts.MaxProviderKeyLength).IsRequired(); @@ -106,6 +88,28 @@ namespace Volo.Abp.Identity.EntityFrameworkCore b.Property(ul => ul.LoginProvider).HasMaxLength(IdentityUserTokenConsts.MaxLoginProviderLength).IsRequired(); b.Property(ul => ul.LoginProvider).HasMaxLength(IdentityUserTokenConsts.MaxNameLength).IsRequired(); }); + + builder.Entity(b => + { + b.ToTable(tablePrefix + "Roles", schema); + + b.Property(r => r.Name).IsRequired().HasMaxLength(IdentityRoleConsts.MaxNameLength); + b.Property(r => r.NormalizedName).IsRequired().HasMaxLength(IdentityRoleConsts.MaxNormalizedNameLength); + + b.HasMany(r => r.Claims).WithOne().HasForeignKey(rc => rc.RoleId).IsRequired(); + + b.HasIndex(r => r.NormalizedName); + }); + + builder.Entity(b => + { + b.ToTable(tablePrefix + "RoleClaims", schema); + + b.Property(uc => uc.ClaimType).HasMaxLength(IdentityRoleClaimConsts.MaxClaimTypeLength).IsRequired(); + b.Property(uc => uc.ClaimValue).HasMaxLength(IdentityRoleClaimConsts.MaxClaimValueLength); + + b.HasIndex(uc => uc.RoleId); + }); } } }