entity-framework - 查询组合
问题描述
我正在尝试使用 asp.net core c# 构建查询
https://www.reflectionit.nl/blog/2017/paging-in-asp-net-core-mvc-and-entityframework-core
我试图进行过滤,但是我需要另一个表中具有我唯一 ID 的数据
var result = _context.UserRoles.Where(y => y.RoleId.Contains(selectedRoles.Id)); // Retrieve the the userid i have from another table with the selected roleid
var query = _context.Users.Where(x => //I have already tried contains, where join );
如果有一个网站可以让我学习这个查询,请推荐。“Join()”在我进行分页时不起作用
解决方案
至少两个解决方案(请注意,我不检查身份类成员,因此以下是解决方案的“精神”(您错过了选择子句)):
var result = _context.UserRoles.
Where(y => selectedRoles.Contains(y.RoleId)).
Select(y => y.User);
或者
var result = _context.UserRoles.
Where(y => selectedRoles.Contains(y.RoleId)).
Select(y => y.UserId);
query = _context.Users.
Where(x => result.Contains(x.Id));
也就是说,假设UserRoles
Identity (v2) 中没有公开表,您可能想要:
userManager.Users.
Where(u => u.Roles.Any(r => selectecRoles.Contains(r.RoleId)));
由您来实例化 userManager。
推荐阅读
- function - Erlang 函数的命名约定
- google-cloud-platform - 使用 Google Cloud 上的 Windows Server 托管软件的共享许可
- python - 将列表的元素添加到某些列中的所有元素
- flutter - 颤动中的布局背景
- javascript - 量角器忽略同步无法正常工作
- javascript - 如何找到包含特定数组的数组的索引?
- java - 如何使随机检查Java?
- c# - 如何使用 selenium c# 清除会话存储?
- flutter - 在容器内的 TextFormField 中设置光标
- oracle - 如何使用 SQLLDR 加载毫秒精度日期