J'ai une table utilisateur avec un masque de bits qui contient les rôles de l'utilisateur. La requête LINQ retourne ci-dessous tous les utilisateurs dont les rôles comprennent 1, 4 ou 16.Comment ajouter des clauses dynamiques 'where' à une requête linq?
var users = from u in dc.Users
where ((u.UserRolesBitmask & 1) == 1)
|| ((u.UserRolesBitmask & 4) == 4)
|| ((u.UserRolesBitmask & 16) == 16)
select u;
Je voudrais réécrire ceci dans la méthode ci-dessous pour les utilisateurs retourne tous des rôles donnés donc je peux le réutiliser:
private List<User> GetUsersFromRoles(uint[] UserRoles) {}
Des pointeurs sur la façon de générer dynamiquement ma requête? Merci
Apparemment, la classe PredicateBuilder est disponible en deux versions: l'exemple de code source sur le site Web, qui est © Albahari & O'Reilly, tous droits réservés; et dans le cadre de LinqKit, qui est "sous licence libre et permissive, ce qui signifie que vous pouvez le modifier à votre guise, et l'incorporer dans votre propre logiciel commercial ou non-commercial". – Sjoerd
LinqKit est disponible via NuGet. –