我从IdentityUser,CustomUser派生了一个类。 如果我检查数据库表,我可以看到Identity 2.0已经向AspNetUserRoles表添加了第三列,称为CustomUser_Id。
它似乎是我的CustomUser表的外键,但AspNetUserRoles已经有UserId列,所以它似乎是多余的。
为什么呢?我错过了什么?
答案 0 :(得分:4)
我假设你还有ApplicationUser
闲逛。 IdentityUser
是一个抽象类,因此dbo.AspNetUserRoles
中的列附加到用于通用TUser
的{{1}}类型的任何具体类。默认情况下,这是IdentityDbContext<TUser>
。如果您创建了另一个ApplicationUser
的子类,那么您所做的就是创建一个具有类似属性的类,但是它与所有Identity内容完全断开,并且可能有自己的表IdentityUser
,其中然后需要在dbo.CustomUsers
上为其添加单独的外键。
长短,你只会在用户苹果上咬一口。如果您希望拥有不同类型的用户,则需要继承主用户实施(默认为dbo.AspNetUserRoles
),而不是ApplicationUser
。