Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将自定义模型中的列映射到ASP.NET核心标识中的标识模型_C#_Asp.net_Asp.net Core_Entity Framework Core - Fatal编程技术网

C# 如何将自定义模型中的列映射到ASP.NET核心标识中的标识模型

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

我正在现有数据库的现有项目中实现ASP.NET核心标识

我已经指定了用于IdentityUser和IdentityRole的实体,如下所示:

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");
        });
    }
}