Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
LINQ任何与Guid比较列表抛出错误_Linq_.net Core - Fatal编程技术网

LINQ任何与Guid比较列表抛出错误

LINQ任何与Guid比较列表抛出错误,linq,.net-core,Linq,.net Core,我正在处理LINQ查询,在该查询中,我选择了针对角色的所有声明。角色可能有索赔,也可能没有索赔,所以我离开了join,这和下面的object claimList一样工作正常。现在我需要根据我试图使用的角色是否存在声明来分配状态对象true或false,但它抛出错误 错误 您的问题是因为在linq中使用了Guid.Parse,您必须创建一个变量并分配它,然后使用如下所示的变量: Guid tmpId = Guid.Parse("22000010-0002-4ADD-BC6F-7556616t666

我正在处理LINQ查询,在该查询中,我选择了针对角色的所有声明。角色可能有索赔,也可能没有索赔,所以我离开了join,这和下面的object claimList一样工作正常。现在我需要根据我试图使用的角色是否存在声明来分配状态对象true或false,但它抛出错误

错误
您的问题是因为在linq中使用了
Guid.Parse
,您必须创建一个变量并分配它,然后使用如下所示的变量:

Guid tmpId = Guid.Parse("22000010-0002-4ADD-BC6F-7556616t66656");
var o2 = (from role in Context.Roles.Where(x=>x.Id == tmpId)
              join roleClaimRef in Context.RoleClaims on role.Id equals roleClaimRef.RoleId into rc
              select new
              {
                 role,
                 roleClaim = rc.DefaultIfEmpty(),
                 claimList = (from claim in Context.Claims
                              select new
                              {
                                  claim,
                                  status = rc.Select(x=>x.ClaimId).Any(claim.Id)
                              })
              }).ToList();

您的问题是因为在linq中使用了
Guid.Parse
,您必须创建一个变量并分配它,然后使用如下所示的变量:

Guid tmpId = Guid.Parse("22000010-0002-4ADD-BC6F-7556616t66656");
var o2 = (from role in Context.Roles.Where(x=>x.Id == tmpId)
              join roleClaimRef in Context.RoleClaims on role.Id equals roleClaimRef.RoleId into rc
              select new
              {
                 role,
                 roleClaim = rc.DefaultIfEmpty(),
                 claimList = (from claim in Context.Claims
                              select new
                              {
                                  claim,
                                  status = rc.Select(x=>x.ClaimId).Any(claim.Id)
                              })
              }).ToList();
你说呢

status=rc.Select(x=>x.ClaimId).Any(claim.Id)
,您正在将Guid作为参数传递给Linq函数Any,它需要一个返回布尔值()的函数

我假设您打算从
rc
中进行选择,其中
ClaimId
属性等于您的
claim.Id

在这种情况下,请执行以下操作:

status=rc.Select(x=>x.ClaimId).Any(ClaimId=>ClaimId==claim.Id)

希望这能有所帮助。

你说什么

status=rc.Select(x=>x.ClaimId).Any(claim.Id)
,您正在将Guid作为参数传递给Linq函数Any,它需要一个返回布尔值()的函数

我假设您打算从
rc
中进行选择,其中
ClaimId
属性等于您的
claim.Id

在这种情况下,请执行以下操作:

status=rc.Select(x=>x.ClaimId).Any(ClaimId=>ClaimId==claim.Id)


希望这有帮助。

使用
where
条件检查您的
ID

   var o2 = (from role in Context.Roles.Where(x=>x.Id == Guid.Parse("22000010-0002-4ADD-BC6F-7556616t66656"))
                      join roleClaimRef in Context.RoleClaims on role.Id equals roleClaimRef.RoleId into rc
                      select new
                      {
                         role,
                         roleClaim = rc.DefaultIfEmpty(),
                         claimList = (from claim in Context.Claims
                                      select new
                                      {
                                          claim,
                                          status = rc.Where(a=>a.ClaimId==claim.Id).Select(x=>x.ClaimId)//check if claim id exist or not
                                      })
                      }).ToList();

使用
where
条件检查您的
ID

   var o2 = (from role in Context.Roles.Where(x=>x.Id == Guid.Parse("22000010-0002-4ADD-BC6F-7556616t66656"))
                      join roleClaimRef in Context.RoleClaims on role.Id equals roleClaimRef.RoleId into rc
                      select new
                      {
                         role,
                         roleClaim = rc.DefaultIfEmpty(),
                         claimList = (from claim in Context.Claims
                                      select new
                                      {
                                          claim,
                                          status = rc.Where(a=>a.ClaimId==claim.Id).Select(x=>x.ClaimId)//check if claim id exist or not
                                      })
                      }).ToList();