我有一个表格的用户,包括一位的角色的用户。我想选择用户,属于一个或多个角色的中位值。例如:

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);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top