でLINQ(SQL)はビット単位でクエリー?
-
02-07-2019 - |
質問
いテーブルのユーザーを含むビットマスクの役割のユーザの所属です。い選択をユーザに所属している一又は複数の役割ビットマスクの値です。例えば:
select * from [User] where UserRolesBitmask | 22 = 22
この選定はすべてのユーザーの役割'2','4'または'16'をビットマスク.これを表現することが可能にLINQクエリー?感謝。
解決
と思うこれは動作しますが、まだ試験です。代替名DataContextオブジェクトです。YMMV.
from u in DataContext.Users
where UserRolesBitmask | 22 == 22
select u
他のヒント
ところが私のフェロー googlers:UserRolesBitmask | 22 == 22
すべて選択し利用できないその他のフラグ(そのなフィルター、そのような言 1==1
).
したいものは:
UserRolesBitmask & 22 == 22
を選定するユーザーにある全ての役割をビットマスクまたは:UserRolesBitmask & 22 != 0
るユーザーを選択している少なくとも一つの役割をビットマスク
ませんの仕事が常に利用 ExecuteCommand
:
DataContext.ExecuteCommand("select * from [User] where UserRolesBitmask | {0} = {0}", 22);
所属していません StackOverflow