gpt4 book ai didi

c# - 如果 users.Claims 包含等于参数的声明 (LINQ),则为 linq 语句

转载 作者:太空宇宙 更新时间:2023-11-03 21:31:58 25 4
gpt4 key购买 nike

我的数据库表结构是

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;
}

最佳答案

我相信您正在寻找:

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

关于c# - 如果 users.Claims 包含等于参数的声明 (LINQ),则为 linq 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23695715/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com