我有一個包含用戶所屬角色的位掩碼的用戶表。我想選擇屬於位掩碼值中的一個或多個角色的用戶。例如:LINQ(對SQL)可以執行按位查詢嗎?
select * from [User] where UserRolesBitmask | 22 = 22
這會選擇在位掩碼中角色爲'2','4'或'16'的所有用戶。這有可能在LINQ查詢中表達這一點嗎?謝謝。
我有一個包含用戶所屬角色的位掩碼的用戶表。我想選擇屬於位掩碼值中的一個或多個角色的用戶。例如:LINQ(對SQL)可以執行按位查詢嗎?
select * from [User] where UserRolesBitmask | 22 = 22
這會選擇在位掩碼中角色爲'2','4'或'16'的所有用戶。這有可能在LINQ查詢中表達這一點嗎?謝謝。
我認爲這會起作用,但我沒有測試過它。替換DataContext對象的名稱。因人而異。
from u in DataContext.Users
where UserRolesBitmask | 22 == 22
select u
如果不工作,你總是可以使用ExecuteCommand
:
DataContext.ExecuteCommand("select * from [User] where UserRolesBitmask | {0} = {0}", 22);
作爲一個側面說明,雖然對於我的同胞的Google: UserRolesBitmask | 22 == 22
選擇沒有任何其他標誌的所有用戶(它不是一個過濾器,它像是說1==1
)。
你想要的是兩種:
UserRolesBitmask & 22 == 22
該選擇哪個都在其位掩碼或角色的用戶:UserRolesBitmask & 22 != 0
其中中選擇具有角色的至少一個在其位掩碼用戶
謝謝,我以爲我試過 - 必須一直遲到... :) – Nick 2008-09-25 06:55:26