У меня есть две таблицы tbl_role_master
и tbl_user_master
.
tbl_role_master
имеет следующие значения:
role_id role rolevalue
1 admin 1
2 gen 2
3 test1 4
4 test2 8
5 test3 16
rolevalue
содержит fibonacciseries. tbl_user_master
содержит значения ниже
user_id user_name rolevlue_consolidated
1 user1 15
2 user2 3
3 user3 7
rolevlue_consolidated
содержит добавление комбинации rolevalue
в таблице tbl_role_master
для ex: user1 15 имеет роли admin, gen, test1 и test2
теперь мне нужен запрос linq для получения ролей от tbl_role_master на основе user_id в tbl_user_master
для ex, если я передаю user_id
2, запрос select должен возвратиться
admin
gen
У меня есть запрос sql –
select
role
from
tbl_rol_master
WHERE (
select
rolevalue_consolidated
from
tbl_user_master
where
User_Id=" + userId + "
)
Предполагая, что у вас есть два списка: один со всеми ролями и один со всеми вашими пользователями, вы можете сделать что-то вроде этого:
var userRoles = roles.Where(role => (role.RoleValue &
users.First(user => user.Id == YourUserId) == role.RoleValue);
Что возвращает список со всеми назначенными правами пользователя с данным идентификатором пользователя.