I\'ve got a User table with a bitmask that contains the user\'s roles. The linq query below returns all the users whose roles include 1, 4 or 16.
var users
How's this? It is not dynamic linq, but accomplishes the goal.
private List GetUsersFromRoles(uint[] userRoles)
{
List users = new List();
foreach(uint userRole in UserRoles)
{
List usersInRole = GetUsersFromRole(userRole);
foreach(User user in usersInRole )
{
users.Add(user);
}
}
return users;
}
private List GetUsersFromRole(uint userRole)
{
var users = from u in dc.Users
where ((u.UserRolesBitmask & UserRole) == UserRole)
select u;
return users;
}