2013-11-15 151 views
-1

我想用linq來選擇查詢列表。根據使用LINQ的條件選擇

在休耕代碼 userDtls

是一個列表& Common.UserRightVal是一個枚舉變量

userDtls = _userService.GetById(id); 
var permission = from udtls in userDtls[0].userRightList 
where udtls.object_name == "Person" && 
(udtls.user_right == (int)Common.UserRightVal.update 
|| udtls.user_right == (int)Common.UserRightVal.add_update_delete_read 
|| udtls.user_right == (int) Common.UserRightVal.allRight)select udtls; 

在這裏,我要檢查權限的詳細信息的用戶。我的問題是,如果'where'條件變爲false,那麼權限變量顯示默認記錄,如userDtls列表所示。

+8

而你的問題是? – decPL

+0

你能告訴我們UserRight的代碼嗎? –

+0

感謝您的回覆。 userRightList是一個列表對象,其中包含與user_right類相關的不同數據成員 – user2995219

回答

0

感謝每一位回覆。我得到了答案,就在這裏。

var permission=(dynamic) null; 
permission = (from udtls in userDtls[0].userRightList 
       where udtls.object_name.Contains(objectType) && 
       (udtls.user_right == (int)Common.UserRightVal.readAll 
       || udtls.user_right == (int)Common.UserRightVal.read_readAll 
       || udtls.user_right == (int)Common.UserRightVal.add_update_delete_read 
       || udtls.user_right == (int)Common.UserRightVal.allRight) 
       select udtls).FirstOrDefault();