Похоже, что вам нужна модель представления для каждой роли в хранилище, и если пользователь в этой роли, аргумент inRole
будет иметь значение true. Пожалуйста, поправьте меня, если я ошибаюсь.
Для этого вам нужно левое соединение ролей репозитория с ролями пользователя:
from role in repository.Roles
join userRole in user.Roles on role.RoleID equals userRole.RoleID into userRoles
from userRole in userRoles.DefaultIfEmpty()
select new RoleViewModel(role, userRole != null)
Это объединяет набор ролей в репозитории с набором ролей для пользователя. Он помещает соответствующие роли пользователя в последовательность userRoles
, а затем использует DefaultIfEmpty
, чтобы возвратить ноль для userRole
, если пользователь не находится в роли репозитория. Таким образом, если userRole
не равно нулю, пользователь находится в роли хранилища, но если userRole
равно нулю, пользователь не находится в роли хранилища.