protected override void OnModelCreating(ModelBuilder builder)
        {
            base.OnModelCreating(builder);
            #region Rename default Identity Table Names
            builder.HasDefaultSchema("public");
            builder.Entity <RoleClaim>(builder =>
            {
                //builder.HasOne(roleClaim => roleClaim.Role).WithMany(role => role.Claims).HasForeignKey(roleClaim => roleClaim.RoleId);
                //builder.Property(x => x.RoleId).HasColumnName("RoleId");    //Prevent replicating same name
                builder.ToTable("RoleClaim", schema: IdentitySchemaName);
            });
            builder.Entity <Role>(builder =>
            {
                builder.ToTable("Role", schema: IdentitySchemaName);
            });
            builder.Entity <UserClaim>(builder =>
            {
                //builder.HasOne(userClaim => userClaim.User).WithMany(user => user.Claims).HasForeignKey(userClaim => userClaim.UserId);
                builder.ToTable("UserClaim", schema: IdentitySchemaName);
            });
            builder.Entity <UserLogin>(builder =>
            {
                //builder.HasOne(userLogin => userLogin.User).WithMany(user => user.Logins).HasForeignKey(userLogin => userLogin.UserId);
                builder.ToTable("UserLogin", schema: IdentitySchemaName);
            });
            builder.Entity <User>(builder =>
            {
                builder.ToTable("User", schema: IdentitySchemaName);
            });
            builder.Entity <UserRole>(builder =>
            {
                //builder.HasOne(userRole => userRole.Role).WithMany(role => role.Users).HasForeignKey(userRole => userRole.RoleId);
                //builder.HasOne(userRole => userRole.User).WithMany(user => user.Roles).HasForeignKey(userRole => userRole.UserId);
                builder.ToTable("UserRole", schema: IdentitySchemaName);
            });
            builder.Entity <UserToken>(builder =>
            {
                //builder.HasOne(userToken => userToken.User).WithMany(user => user.UserTokens).HasForeignKey(userToken => userToken.UserId);
                builder.ToTable("UserToken", schema: IdentitySchemaName);
            });
            #endregion

            #region Data Seeding
            if (Environment.IsDevelopment())
            {
                using (SeedController seeder = new SeedController(builder))
                {
                    seeder.Execute();
                }
            }
            #endregion
        }