题
我有一个表格的用户,包括一位的角色的用户。我想选择用户,属于一个或多个角色的中位值。例如:
select * from [User] where UserRolesBitmask | 22 = 22
这一选择的所有用户的角色'2','4'或'16'在他们的位.这可能表示这一在皇宫询问?谢谢。
解决方案
我认为这会有效,但我还没有测试过它。替换了你的DataContext对象的名字。因人而异。
from u in DataContext.Users
where UserRolesBitmask | 22 == 22
select u
其他提示
作为一个侧面说明尽管我的同谷歌:UserRolesBitmask | 22 == 22
选择的所有用户没有任何其他标志(它不是一个过滤器,其就像在说 1==1
).
你想要什么:
UserRolesBitmask & 22 == 22
它选择的用户有所有角色在他们的位或:UserRolesBitmask & 22 != 0
它选择用户,其中至少有一个角色在他们位
如果这不起作用,您可以随时使用 ExecuteCommand
:
DataContext.ExecuteCommand("select * from [User] where UserRolesBitmask | {0} = {0}", 22);
不隶属于 StackOverflow