entity-framework - 有没有更好的方法在实体框架中执行这样的查询
问题描述
我有一个名为的模型User
,每个用户都有一个名为Hobbies
. 我想检索一个User
具有特定 ID 的爱好的人,使用 Entity Framework 有什么比仅检索所有用户然后在每个用户的爱好列表中搜索并将其与爱好 id 匹配更好的方法,伪代码如下所示
UserList = select all users from db
targetUser = null;
for User in UsersList:
for Hobby in User.HobbiesList:
if(Hobby.ID == currentHobby.ID)
{
targetUser = User;
}
解决方案
首先,EF 不会自动获取所有链接的实体,您需要明确显示Include
您希望在最终结果中看到的所有内容。
至于问题,是的,当然,您可以在使用 EF 时使用所有标准的 LINQ 过滤器。在你的情况下
db.Userlist.Where(user => user.HobbiesList.Any(hobby => hobby.ID == currentHobby.ID))
Include(user => user.HobbiesList)
如果您想在结果中看到它,请不要忘记。
推荐阅读
- python - 使用 tensorflow.map_fn 创建自定义层时出现 TypeError
- javascript - 使用map函数创建对象,currentValue作为对象键
- python - 不带双括号的数组索引输出
- android - Android:Twitter sdk:无法导入任何 twitter 类
- angular - 字体真棒图标不显示角度6
- ansible - 基于 vars_prompt 的剧本的条件输入 - Ansible
- flutter - 如何将二进制 pdf 数据保存到移动存储中或使用颤振保存到文件中
- reactjs - React Typescript 面临酶问题
- pycharm - 如何在没有整个 Anaconda 包(Spyder、Juyter 等...)的情况下只安装 Conda Python 解释器?
- azure - 通过电子邮件获取资源组使用情况的每月 Azure 计费发票