C# 如何将自定义模型中的列映射到ASP.NET核心标识中的标识模型
我正在现有数据库的现有项目中实现ASP.NET核心标识 我已经指定了用于IdentityUser和IdentityRole的实体,如下所示:C# 如何将自定义模型中的列映射到ASP.NET核心标识中的标识模型,c#,asp.net,asp.net-core,entity-framework-core,C#,Asp.net,Asp.net Core,Entity Framework Core,我正在现有数据库的现有项目中实现ASP.NET核心标识 我已经指定了用于IdentityUser和IdentityRole的实体,如下所示: public partial class MyContext : IdentityDbContext<MyUser, MyRole, int> 我能够成功地将迁移应用到数据库。但是,在检查AspNetRole表时,我可以看到EF创建了一些额外的列 我如何告诉EF Core在上图中使用RoleId等现有列,而不是创建新列 另外,我注意到EF C
public partial class MyContext : IdentityDbContext<MyUser, MyRole, int>
我能够成功地将迁移应用到数据库。但是,在检查AspNetRole表时,我可以看到EF创建了一些额外的列
我如何告诉EF Core在上图中使用RoleId等现有列,而不是创建新列
另外,我注意到EF Core将MyRoles表名更改为AspNetRoles,这与MyUsers表不同。MyUsers表名保持不变,即使像我上面提到的那样创建了额外的列。为什么呢
PS:我正在使用DotNet Core 3.0和EF Core 3.0
添加[Column]注释以更改默认列名:
公共类MyRole:IdentityRole
{
[柱状体]
公共重写int-Id{get;set;}
[柱状烯胺]
公共重写字符串名称{get;set;}
}
要重用旧表MyRoles,请自定义OnModelCreatingbuilder方法:
services.AddIdentity<MyUser, MyRole>(options =>
{
options.User.RequireUniqueEmail = true;
}).AddEntityFrameworkStores<MyContext>();
public class AppIdentityDbContext : IdentityDbContext<MyUser, MyRole, int>
{
...
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
builder.Entity<MyRole>(e =>{
e.ToTable("MyRoles");
});
}
}