【发布时间】:2022-01-21 19:48:04
【问题描述】:
我有一个用户拥有的角色列表
List<Role> userRoles; // this is a list of roles
然后我的文件夹具有一个或多个关联角色并且可以访问 Folders.Roles。
我想返回与文件夹中的字段匹配并且在 userRoles 列表中的子角色列表中也有角色的文件夹列表。
我基本上可以使用一些 foreach 语句来做我想做的事......
bool hasRole = false;
List<Folder> folders2 = _customerPortalDbContext.Folders.Where(f => f.ParentFolderId == Guid.Empty).ToList();
foreach(Folder f in folders2)
{
foreach (Role role in f.Roles)
{
if( roles.Any(r => r.Id == role.Id)) hasRole = true;
}
}
但我觉得我过去曾使用一些聪明的 Linq 代码看到或做过类似的事情,所以希望这可能吗?类似的东西
IQueryable<Folder> folders = _customerPortalDbContext.Folders.Where(f => f.FolderType == "FolderType")
&& f.Roles.RoleId.<<Compare to roles in List of roles>>);
【问题讨论】:
标签: linq entity-framework-core comparison