为什么我有两个表-AspNetUsers和ApplicationUser

时间:2019-01-10 12:14:30

标签: c# asp.net-identity entity-framework-core

我是ASP.NET Core MVC和EF的新手。我创建了一个CatchmebgUser,它继承了IdentityUser。我在CatchmebgUser中为照片添加了一个自定义字段,并应用了迁移。

现在我有两个表:AspNetUsersCatchmebgUser

使用User对象时,我是从AspNetUsers表中获取数据的,直到我将此行添加到CatchmebgContext为止:

builder.Entity<CatchmebgUser>().ToTable("CatchmebgUser");

是否有摆脱AspNetUsers表的方法,或者我应该为用户提供两个单独的表?

1 个答案:

答案 0 :(得分:2)

如果您从User继承自定义IdentityUser类型,则必须改用IdentityDbContext的派生版本,该版本允许您为用户,角色和主键指定这种具体类型在整个身份框架中使用:

public class MyDbContext : IdentityDbContext<CatchmebgUser, IdentityRole, string>
{
   ...
}

通过这种方式,您不必为类型添加builder.Entity<CatchmebgUser>().ToTable("CatchmebgUser")配置,因为上下文将自动为DbSet<CatchmebgUser>属性使用Users