如何在我的LINQ查询中使用HashSet
本文关键字:HashSet 查询 LINQ 我的 | 更新日期: 2023-09-27 18:02:15
我有一个所有用户的查询,看起来像这样:
<>以前从U in db。AspNetUsersorderbyu.UserName选择…之前很好。但是现在我想过滤特定的用户角色。有一个u.AspNetRoles
,它是一个对象的哈希集。每个对象都有一个Name
属性,该属性是角色的名称。
所以我只想选择角色对象Name
等于"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
中有一个Name
的值为"SuperAdmin"
,则Any
的结果为真。如果所有项都不符合条件,则Any
返回false。