c# - 是否可以在 ApplicationUser 类中添加角色作为外键?
问题描述
我想向所有用户展示他们的角色。我正在考虑在 ApplicationUser 类中做这样的事情:
public string RoleId {get; set;}
[ForeignKey("RoleId")]
public UserManager Role {get; set;}
当然这不会返回正确的结果,但我认为可能有一种解决方法......
解决方案
默认身份架构使用UserRoles
表将用户的角色与他们关联起来。如果您实现了自定义IdentityDbContext<>您可以在ApplicationUser
,UserRole
和IdentityRole
实现之间创建外键关系。
public class ApplicationUser
{
public List<UserRole> UserRoles { get; set; }
}
public class UserRole
{
public string UserId { get; set; }
[ForeignKey(nameof(UserId))]
public ApplicationUser User { get; set }
public string RoleId { get; set; }
[ForeignKey(nameof(RoleId))]
public IdentityRole Role { get; set }
}
IQueryable<ApplicationUser> GetUsers(IdentityDb db)
{
return db.Users.Include(u => u.UserRoles).ThenInclude(ur => ur.Role);
}
推荐阅读
- c# - 在 .NET 中为“模型”类提供接口有什么好处?
- javascript - 调用 jQuery 没有返回正确的数据
- python - 有没有办法在收到特定请求时停止其他服务
- javascript - 如何将所有对象字段复制到具有相同名称的变量中?
- typescript - 如何阻止 tsc 对用于开发/测试的类型进行类型检查
- c# - 在 Daterange 中查找时间跨度重叠计数
- android - 无法从 CursorWindow 读取第 0 行第 2 列。确保在从光标访问数据之前正确初始化光标
- python - 为了使这种方法更快
- c# - 使用 WebMethod C# 调用 QnAMaker 时无限加载
- java - 侯使用spring data elasticsearch scroll api进行排序