我想更改标识表的名称。我搜索了一下,发现了以下方法:
第一项:
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作为它们的主键。
ApplicationDbContext和StartUp如下所示
ApplicationDbContext
public class ApplicationDbContext : IdentityDbContext<ApplicationUser, ApplicationRole, int>StartUp类
services.AddDbContext<ApplicationDbContext>(options =>
options.UseMySql(Configuration.GetConnectionString("MySQLConnection")));
services.AddIdentity<ApplicationUser, ApplicationRole>()
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();如果您注意到,在start up类中,我没有在上添加一个int,因为编译器错误总是显示“不支持.”.。
我做了以下操作来删除旧的数据库和迁移
$ drop-database
$ remove-migration要添加新配置,请执行以下操作
$ add-migration Initial
$ update-database我发现的结果是,只更改了用户和角色表,而没有更改其他表(AspUserRoles、AspUserClaim.)。
FYI:
我正在使用2017。我的项目使用默认的with和.NET Core2,我还使用了数据库提供程序的.NET。
我的问题是:,我做错了什么?或者是什么改变了?
发布于 2017-09-08 15:29:19
您需要告诉IdentityDbContext您的所有自定义类型。为此,您需要扩展传递给IdentityDbContext的泛型,如下所示:
public class ApplicationDbContext : IdentityDbContext<ApplicationUser,
ApplicationRole, int, ApplicationUserClaim, ApplicationUserRole,
ApplicationUserLogin, ApplicationRoleClaim, ApplicationUserToken>https://stackoverflow.com/questions/46118930
复制相似问题