首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在.NET核心中更改默认的ASP.NET身份表名?

如何在.NET核心中更改默认的ASP.NET身份表名?
EN

Stack Overflow用户
提问于 2017-01-03 19:30:04
回答 8查看 24.1K关注 0票数 35

我从IdentityModels核心开始,在MVC5中,我以这种方式将默认表名改为用户,例如: AspNETUsers,它工作得很好:在MVC5中,我使用了:

代码语言:javascript
复制
protected override void OnModelCreating(System.Data.Entity.DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);

        modelBuilder.Entity<IdentityUser>().ToTable("Users").Property(p => p.Id).HasColumnName("UserId");
        modelBuilder.Entity<ApplicationUser>().ToTable("Users").Property(p => p.Id).HasColumnName("UserId");
        modelBuilder.Entity<IdentityUserRole>().ToTable("UserRoles");
        modelBuilder.Entity<IdentityUserLogin>().ToTable("UserLogins");
        modelBuilder.Entity<IdentityUserClaim>().ToTable("UserClaims");
        modelBuilder.Entity<IdentityRole>().ToTable("Roles");
    }

但它在.NET核心(MVC6)中不起作用。有人能帮我吗?非常感谢。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2017-01-03 19:53:09

尝试将绑定更改为

代码语言:javascript
复制
builder.Entity<ApplicationUser>(entity =>
       {
           entity.ToTable(name:"Users");
           entity.Property(e => e.Id).HasColumnName("UserId");

       });
票数 24
EN

Stack Overflow用户

发布于 2017-05-24 19:04:58

-To更改这些表的名称( IdentityUserRole<Tkey>、IdentityUserToken<Tkey>、IdentityRoleClaim<Tkey>、IdentityUserClaim<Tkey>、IdentityUserLogin<Tkey>)您必须指定TKey的类型(用于主键的类型),默认情况下是字符串(GUID),即使您没有更改它。

要将主键从GUID更改为int https://medium.com/@goodealsnow/asp-net-core-identity-3-0-6018fc151b4的-If

代码语言:javascript
复制
protected override void OnModelCreating(ModelBuilder builder)
    {
        base.OnModelCreating(builder);
        // Customize the ASP.NET Identity model and override the defaults if needed.
        // For example, you can rename the ASP.NET Identity table names and more.
        // Add your customizations after calling base.OnModelCreating(builder);

        builder.Entity<ApplicationUser>(entity =>
        {
            entity.ToTable(name: "User");         
        });

        builder.Entity<IdentityRole>(entity =>
        {
            entity.ToTable(name: "Role");
        });
        builder.Entity<IdentityUserRole<string>>(entity =>
        {
            entity.ToTable("UserRoles");
          //in case you chagned the TKey type
          //  entity.HasKey(key => new { key.UserId, key.RoleId });
        });

        builder.Entity<IdentityUserClaim<string>>(entity =>
        {
            entity.ToTable("UserClaims");
        });

        builder.Entity<IdentityUserLogin<string>>(entity =>
        {
            entity.ToTable("UserLogins");
             //in case you chagned the TKey type
          //  entity.HasKey(key => new { key.ProviderKey, key.LoginProvider });       
 });

        builder.Entity<IdentityRoleClaim<string>>(entity =>
        {
            entity.ToTable("RoleClaims");

        });

        builder.Entity<IdentityUserToken<string>>(entity =>
        {
            entity.ToTable("UserTokens");
            //in case you chagned the TKey type
           // entity.HasKey(key => new { key.UserId, key.LoginProvider, key.Name });

        });
    }
票数 28
EN

Stack Overflow用户

发布于 2018-05-26 00:15:39

基于@ahmed-al-jabry的答案的ASP.Net核心2/2.1的完整列表。

代码语言:javascript
复制
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    base.OnModelCreating(modelBuilder);

    // Override default AspNet Identity table names
    modelBuilder.Entity<User>(entity => { entity.ToTable(name: "Users"); });
    modelBuilder.Entity<IdentityRole>(entity => { entity.ToTable(name: "Roles"); });
    modelBuilder.Entity<IdentityUserRole<string>>(entity => { entity.ToTable("UserRoles"); });
    modelBuilder.Entity<IdentityUserClaim<string>>(entity => { entity.ToTable("UserClaims"); });
    modelBuilder.Entity<IdentityUserLogin<string>>(entity => { entity.ToTable("UserLogins"); });
    modelBuilder.Entity<IdentityUserToken<string>>(entity => { entity.ToTable("UserTokens"); });
    modelBuilder.Entity<IdentityRoleClaim<string>>(entity => { entity.ToTable("RoleClaims"); });
}
票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41442513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档