C# 如何在我的LINQ查询中使用哈希集?
我有一个针对所有用户的查询,如下所示: from u in db.AspNetUsers orderby u.UserName select .... 从…起 u在db.AspNetUsers中 排序子句 u、 用户名 选择 .... 那很好。但现在我想筛选特定的用户角色。有一个C# 如何在我的LINQ查询中使用哈希集?,c#,entity-framework,linq,hashset,C#,Entity Framework,Linq,Hashset,我有一个针对所有用户的查询,如下所示: from u in db.AspNetUsers orderby u.UserName select .... 从…起 u在db.AspNetUsers中 排序子句 u、 用户名 选择 .... 那很好。但现在我想筛选特定的用户角色。有一个u.AspNetRoles,它是一组对象。每个对象都有一个名称属性,该属性是角色的名称 因此,我只想选择具有名称等于“SuperAdmin”的角色对象的用户 以前,我只是尝试使用角色数据连接表,但
u.AspNetRoles
,它是一组对象。每个对象都有一个名称
属性,该属性是角色的名称
因此,我只想选择具有名称
等于“SuperAdmin”
的角色对象的用户
以前,我只是尝试使用角色数据连接表,但这不起作用,因为有一个AspNetUserRoles表,它只有一个UserID和一个RoleID,没有主键。假设不建议为没有主键的表创建实体类。我认为这符合您的要求:
from
u in db.AspNetUsers
where
u.AspNetRoles.Any(r => r.Name == "SuperAdmin")
orderby
u.UserName
select
. . .
如果集合中的任何项满足lambda标准(
r=>r.Name==“SuperAdmin”
,则Any
方法将返回true)。如果用户对象u
的集合AspNetRoles
中的任何项具有名称
,其中值为“SuperAdmin”
,则any
的结果为真。如果没有一项符合标准,则Any
返回false。我认为这符合您的要求:
from
u in db.AspNetUsers
where
u.AspNetRoles.Any(r => r.Name == "SuperAdmin")
orderby
u.UserName
select
. . .
如果集合中的任何项满足lambda标准(
r=>r.Name==“SuperAdmin”
,则Any
方法将返回true)。如果用户对象u
的集合AspNetRoles
中的任何项具有名称
,其中值为“SuperAdmin”
,则any
的结果为真。如果所有项都不符合标准,则Any
将返回false。需要明确的是:您只想查找角色为“超级管理员”的用户,对吗?是的,这是正确的。需要明确的是:您只想查找角色为“超级管理员”的用户,对吗?是的,这是正确的。