如何在Asp.net Identity中为Users表的pk和角色表pk使用不同的类型

时间:2018-03-30 02:03:23

标签: asp.net asp.net-mvc asp.net-identity

我正在尝试让我的users表有一个Guid类型的主键而不是默认字符串,我的用户实体看起来像这样:

public class User : IdentityUser<Guid, UserLogin, UserRole, UserClaim>

我的上下文类看起来像这样

public class Context : IdentityDbContext<User, Role, Guid, UserLogin, UserRole, UserClaim>

但是现在,我必须制作Guid类型的角色ID,但不要像我想要的那样:

public class Role : IdentityRole<int, UserRole>//I can't do this because UserRole is tied to User which has Guid for TKey

有没有办法让用户和角色为主键使用不同的类型?

1 个答案:

答案 0 :(得分:3)

可悲的是,由于Identity的可扩展性,您无法做到这一点。您对密钥类型的限制是由于实际的身份上下文,当您定义它时,您使用此签名

IdentityDbContext<TUser, TRole, TKey>

TKey值驱动用户和用户所需的主键类型。角色。你既可以是int,也可以是字符串,都是Guid等,但是你不能将它们分成不同的类型。