我有一个带有位掩码的用户表,其中包含用户的角色。下面的 linq 查询返回角色包括 1、4 或 16 的所有用户。
var users = from u in dc.Users
where ((u.UserRolesBitmask & 1) == 1)
|| ((u.UserRolesBitmask & 4) == 4)
|| ((u.UserRolesBitmask & 16) == 16)
select u;
我想将其重写为下面的方法,以返回给定角色的所有用户,以便我可以重用它:
private List<User> GetUsersFromRoles(uint[] UserRoles) {}
关于如何动态构建查询的任何指示?谢谢
最佳答案
您可以使用 PredicateBuilder类。
PredicateBuilder 已于 LINQKit NuGet package 发布
LINQKit is a free set of extensions for LINQ to SQL and Entity Framework power users.
关于c# - 如何将动态 'where' 子句添加到 linq 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/180405/