Можно ли добавить роли в качестве внешних ключей в классе ApplicationUser? - PullRequest
0 голосов
/ 21 мая 2018

Я хочу показать всем пользователям их роли.Я думаю о том, чтобы сделать что-то подобное в классе ApplicationUser:

 public string RoleId {get; set;}
 [ForeignKey("RoleId")]
 public UserManager Role {get; set;}

Конечно, это не возвращает правильные результаты, но я думаю, что может быть обходной путь ...

1 Ответ

0 голосов
/ 21 мая 2018

Схема идентификации по умолчанию использует таблицу 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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...