2014-05-16 56 views
1

我的分貝表結構是LINQ語句如果users.Claims包含權利要求等於參數(LINQ)

ClaimsTable 
Id (int) UserId (FK) ClaimType (string) ClaimValue (string) 
1  1   Role    Administrator 

我不跟蹤從用戶側的權利要求,因此,當我需要用戶聲稱我手動加載。

現在我有簡單的LINQ問題,但我不能從這裏看到 我加載用戶索賠出路,我要檢查這是否要求匹配一個作爲參數

public bool HasClaim(User user, string type, string value) 
{   
    var claimsRepository = ... claimsrepository init .... 

    var userClaims = claimsRepository.FindAll().Where(usr => usr.User == user).ToList(); 

    if (userClaims.Count() > 0) 
    { 
     // linq statement to select those claims which has type and value 
     // equal to method parameters 

     bool containsClaim = ????? 
     if (containsClaim == true) 
      return true; 
    } 
    return false; 
} 

回答

4

我相信通過您正在查找:

return claimsRepository.FindAll().Any(user => user.User == user && 
             user.ClaimType == type && 
             user.ClaimValue == value);