gpt4 book ai didi

c# - 无法更改 Asp 身份表名称..... Asp .Net Core 2?

转载 作者:太空宇宙 更新时间:2023-11-03 21:00:19 26 4
gpt4 key购买 nike

我想更改身份表的名称。我搜索了一下,发现了以下方法:

第一个:

protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);


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

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

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

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

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

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

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

第二个:

    protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);

builder.Entity<ApplicationUser>().ToTable("Users");
builder.Entity<ApplicationRole>().ToTable("Roles");
builder.Entity<ApplicationRoleClaim>().ToTable("RoleClaims");
builder.Entity<ApplicationUserRole>().ToTable("UserRoles");
builder.Entity<ApplicationUserClaim>().ToTable("UserClaims");
builder.Entity<ApplicationUserToken>().ToTable("UserTokens");
builder.Entity<ApplicationUserLogin>().ToTable("UserLogins");
}

所有通用名称,如 ApplicationUser、ApplicationRole 等,都将“int”作为它们的主键。

ApplicationDbContextStartUp 如下所示

ApplicationDbContext

public class ApplicationDbContext : IdentityDbContext<ApplicationUser, ApplicationRole, int>

启动类

       services.AddDbContext<ApplicationDbContext>(options =>
options.UseMySql(Configuration.GetConnectionString("MySQLConnection")));

services.AddIdentity<ApplicationUser, ApplicationRole>()
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();

如果你注意到,在启动类中,我没有在 AddEntityFrameworkStores<ApplicationDbContext>(). 上添加 int因为,编译器错误一直显示为 “不支持......”。

我做了以下操作来删除旧数据库和迁移

$ drop-database
$ remove-migration

添加新配置

$ add-migration Initial
$ update-database

我发现只有用户和角色表发生了变化,而其他表(AspUserRoles、AspUserClaim 等)没有变化。

仅供引用:

我使用的是 Visual Studio 2017。我的项目使用默认的 Web 应用程序,选择了 个人用户帐户.NET Core 2。我还使用 Pomela.EntityFramework。 MySql 作为我的数据库提供者。

我的问题是:“我做错了什么?”或者发生了什么变化?

最佳答案

您需要将所有自定义类型告知 IdentityDbContext。为此,您需要扩展传递给 IdentityDbContext 的泛型,如下所示:

public class ApplicationDbContext : IdentityDbContext<ApplicationUser,
ApplicationRole, int, ApplicationUserClaim, ApplicationUserRole,
ApplicationUserLogin, ApplicationRoleClaim, ApplicationUserToken>

关于c# - 无法更改 Asp 身份表名称..... Asp .Net Core 2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46118930/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com