оператор linq, если users.Claims содержит утверждения, равные параметрам (LINQ)

1

Моя структура таблицы db

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

Я не отслеживаю заявки со стороны пользователей, поэтому, когда мне нужны пользователи, я загружаю их вручную.

RIght теперь у меня есть простой вопрос 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;
}
Теги:
linq

1 ответ

4
Лучший ответ

Я считаю, что вы ищете:

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню