ユーザーが属するロールのビットマスクを含むユーザーのテーブルがあります。ビットマスク値で 1 つ以上のロールに属するユーザーを選択したいと考えています。例えば:
選択する * [ユーザー] から ここで UserRolesBitmask | 22 = 22
これにより、ビットマスクにロール「2」、「4」、または「16」を持つすべてのユーザーが選択されます。これをLINQクエリで表現することは可能ですか? ありがとう。
ユーザーが属するロールのビットマスクを含むユーザーのテーブルがあります。ビットマスク値で 1 つ以上のロールに属するユーザーを選択したいと考えています。例えば:
選択する * [ユーザー] から ここで UserRolesBitmask | 22 = 22
これにより、ビットマスクにロール「2」、「4」、または「16」を持つすべてのユーザーが選択されます。これをLINQクエリで表現することは可能ですか? ありがとう。
ちなみに、私の仲間のgooglersの場合:
UserRolesBitmask | 22 == 22
他のフラグを持たないすべてのユーザーを選択します(フィルターではなく、言うようなもの1==1
です)。
必要なのは次のいずれかです。
UserRolesBitmask & 22 == 22
ビットマスクにすべての役割を持つユーザーを選択するか、次のようにします。UserRolesBitmask & 22 != 0
これは、ビットマスクに少なくとも1つの役割を持つユーザーを選択しますこれでうまくいくと思いますが、まだテストしていません。DataContext オブジェクトの名前に置き換えてください。YMMV。
from u in DataContext.Users
where UserRolesBitmask | 22 == 22
select u
それがうまくいかない場合は、いつでも使用できますExecuteCommand
:
DataContext.ExecuteCommand("select * from [User] where UserRolesBitmask | {0} = {0}", 22);