生成されたデフォルトのデータベース名.NETのコアアイデンティティ認証3を変更します。

代わりに、デフォルトの名前の1 IdentityUser

    ///  <要約> 
    /// ウェブ用户。
     ///  </要約> 
    パブリック クラスのWebUser:IdentityUser <GUID> 
    { 
        ///  <要約> 
        /// 补充昵称。
         ///  </要約> 
        公共の 文字列のニックネーム{ 取得 ; セット; } 
    }

2.コンテキストクラスを上書きすることができます

  パブリック クラス ApplicationDbContext:IdentityDbContext <のWebUser、ApplicationRole、GUID> 
    { 
        パブリック ApplicationDbContext(DbContextOptions <ApplicationDbContext> オプション)ベース(オプション)
        { 
        } 

        ///  <要約> 
        /// 重写。
         ///  </要約> 
        // /  <PARAM NAME = "ビルダー"> </ PARAM> 
        保護 オーバーライド ボイドOnModelCreating(ModelBuilderのビルダー)
        { 
            VARの maxKeyLength = 256 
            builder.Entity <のWebUser>(B =>
                // プライマリキー 
                b.HasKey(U => u.Id); 

                // 効率的に検索できるようにする"正規化"のユーザー名と電子メールのインデックス、 
                b.HasIndex(U => u.NormalizedUserName).HasName(" UserNameIndex " ).IsUnique(); 
                b.HasIndex(U => u.NormalizedEmail).HasName(" EmailIndex " )。

                // AspNetUsersテーブルにマップ
                b.ToTable(がNameOf(のWebUser)); 

                // チェックオプティミスティック同時実行で使用するための同時実行トークン 
                b.Property(U => u.ConcurrencyStamp)を.IsConcurrencyToken(); 

                //効率的なデータベース・タイプを使用する列のサイズを制限 
                b.Propertyを(U => u.UserName).HasMaxLength(256 )。
                b.Property(U => u.NormalizedUserName).HasMaxLength(256 )。
                b.Property(U => u.Email).HasMaxLength(256 )。
                b.Property(U => u.NormalizedEmail).HasMaxLength(256 )。

                // ユーザーや他のエンティティタイプ間の関係
                 //は、これらの関係はありませんナビゲーションプロパティを使用して構成されていることに注意してください

                。// 各ユーザーが多くUserClaimsを持つことができます
                。。b.HasMany <IdentityUserClaim <GUID >>()WithOne()HasForeignKey(UC => uc.UserId).IsRequired(); 

                // 各ユーザーには、多くのUserLogins持つことができます 
                。。b.HasMany <IdentityUserLogin <GUID >>()WithOne()HasForeignKey(UL => ul.UserId).IsRequired()を。

                // 各ユーザーには、多くのUserTokens持つことができます 
                。。b.HasMany <IdentityUserToken <GUID >>()WithOne()HasForeignKey(UT => ut.UserId).IsRequired()を。

                // 各ユーザーが参加するのUserRoleに多くのエントリを持つことができ、テーブル 
                b.HasMany <IdentityUserRole <GUID >>()WithOne()HasForeignKey(UR =>。。ur.UserId).IsRequired(); 
            }); 

            ビルダー。
            { 
                // 主キー 
                b.HasKey(UC => uc.Id)。

                // AspNetUserClaimsテーブルにマップ 
                b.ToTable(" AspNetUserClaims " ); 
            }); 

            builder.Entity <IdentityUserLogin <GUID >>(B => 
            { 
                // 複合主LoginProviderからなるキーと使用するキー
                 // そのプロバイダと 
                b.HasKey(L => 新しい{l.LoginProvider、l.ProviderKey} ); 

                // による共通DBの制約のために複合キーの列のサイズを制限
                b.Property(L => l.LoginProvider).HasMaxLength(128 )。
                b.Property(L => l.ProviderKey).HasMaxLength(128 )。

                // AspNetUserLoginsテーブルにマップ 
                b.ToTable(" AspNetUserLogins " ); 
            }); 

            builder.Entity <IdentityUserToken <GUID >>(B => 
            { 
                // ユーザーID、LoginProviderおよび名前からなる複合主キー 
                b.HasKey(T => 新しい{t.UserId、t.LoginProvider、t.Name})。

                // による共通DBの制約のために複合キーの列のサイズを制限
                b.Property(T => t.LoginProvider).HasMaxLength(maxKeyLength)。
                b.Property(T => t.Name).HasMaxLength(maxKeyLength)。

                // AspNetUserTokensテーブルにマップ 
                b.ToTable(" AspNetUserTokens " ); 
            }); 

            builder.Entity <ApplicationRole>(B => 
            { 
                // 主キー 
                b.HasKey(R => r.Id); 

                // "正規化"ロール名のインデックスは、効率的な検索を可能にする 
                b.HasIndex(R => r.NormalizedName ).HasName(" RoleNameIndex " )。

                // AspNetRolesテーブルにマップ 
                b.ToTable(" AspNetRoles " ); 

                // チェックオプティミスティック並行処理で使用するための同時実行トークン 
                b.Property(R => r.ConcurrencyStamp)を.IsConcurrencyToken(); 

                // 効率的なデータベース・タイプを使用する列のサイズを制限 
                b.Property(U => u.Name).HasMaxLength(256 )。
                b.Property(U => u.NormalizedName).HasMaxLength(256 )。

                // 役割と他のエンティティタイプ間の関係
                 //これらの関係はありませんナビゲーションプロパティを使用して構成されていることに注意してください

                // 各ロールには、参加のUserRoleで多くのエントリを持つことができるテーブル 
                b.HasMany <IdentityUserRole <GUID >>()。WithOne()。HasForeignKey(UR => ur.RoleId).IsRequired (); 

                // それぞれの役割を持つことができ、多くの関連するRoleClaims 
                b.HasMany <IdentityRoleClaim <GUID >>()WithOne()HasForeignKey(RC =>。。rc.RoleId).IsRequired(); 
            }); 

            builder.Entity <IdentityRoleClaim <GUID >>(B => 
            { 
                // 主キー 
                b.HasKey(RC => rc.Id); 

                // AspNetRoleClaimsテーブルにマップ
                b.ToTable(" AspNetRoleClaims " ); 
            }); 

            builder.Entity <IdentityUserRole <GUID >>(B => 
            { 
                // 主キー 
                b.HasKey(R => 新しい{r.UserId、r.RoleId}); 

                // AspNetUserRolesテーブルにマップ 
                b.ToTable(" AspNetUserRoles " ); 
            }); 
        } 
    }

実際には、公式文書には書かなければなりません。

おすすめ

転載: www.cnblogs.com/yeqifeng2288/p/11444210.html