asp.net-core - EF Core AutoMapper:未应用包含中的过滤器嵌套集合
问题描述
我正在使用 EF Core 5。我想进行查询并ProjectTo
用于映射我的结果。但我需要像这样在嵌套集合中创建一个过滤器:
var questions = await _context
.MedicalDatas
.Include(p => p.MedicalDataItems)
.Include(p => p.MedicalAnswers.Where(x => x.AppUserId == userId))
.ProjectTo<MedicalDataDto>(_cp)
.ToListAsync();
2 个导航属性包含在目标类型中,但是当我检查 EF Core 生成的 SQL 时,没有where
子句,它从数据库中选择所有医疗答案。
但是没有投影,它按预期工作。
这里有什么问题?
解决方案
您不需要包含在projectto 中
var questions = await _context
.MedicalDatas
.Where(p => p.MedicalAnswers.Any(x => x.AppUserId == userId))
.ProjectTo<MedicalDataDto>(_cp)
.ToListAsync();
推荐阅读
- vue.js - 在 Vue3 中使用过滤器但无法读取 globalProperties
- python - 如何解决 Python Pylint 安装错误
- omnipay - Paystack Gateway:格式是授权承载[密钥]
- google-app-engine - (gcloud.app.deploy) HTTPError 403:
没有 storage.objects.get 访问 Google Cloud Storage 对象的权限 - mysql - 如何在 MySQL 5.7 的 LEFT JOIN 中排序
- angular - 如何从 NgRx 存储中获取数据到我的组件中并调度相关操作?
- laravel - 登录后返回调用页面而不是仪表板(Laravel 8)
- c# - 如何在 Unity 中获取分配给游戏对象的所有材质
- javascript - Reactjs 无限滚动组件总是渲染新数据
- reactjs - 反应:TypeError:this.props.users.map 不是函数