c# - EF Core 3.1 中的组加入
问题描述
我正在尝试将它返回的问题分组加入 EF core 3.1
处理 LINQ 表达式 'DbSet 失败。这可能表示 EF Core 中的错误或限制
我的代码是这样的
var employees = await (from enrollment in RepositoryContext.Enrollments
join allowance in RepositoryContext.Allowances.Include(y=>y.AllowanceType) on enrollment.EmployeeId equals allowance.EmployeeId
into allowances
select new
{
enrollment,
allowances
}
).AsNoTracking().ToListAsync();
津贴是项目清单,是否有任何解决方法可以像这样运行查询,因为我需要它以获得更好的性能。
解决方案
这里Query with GroupBy 或 GroupJoin throws exception是现已关闭的 GitHub 问题/讨论,我试图说服 EF Core 团队添加GroupJoin
翻译。他们拒绝这样做,并在最终查询运算符#19930 时打开了无用的查询:支持 GroupJoin,我继续为此类翻译而战。所以请去那里评论/投票支持完整的翻译请求。
您还将在那里找到解决方法 - 而不是不受支持GroupJoin
的使用等效支持的相关子查询方法,例如替换
join allowance in RepositoryContext.Allowances.Include(y => y.AllowanceType)
on enrollment.EmployeeId equals allowance.EmployeeId
into allowances
和
let allowances = RepositoryContext.Allowances.Include(y => y.AllowanceType)
.Where(allowance => enrollment.EmployeeId == allowance.EmployeeId)
推荐阅读
- outlook - 我可以使用 Outlook 加载项检查我的电子邮件的多个回复吗?
- angular - 角度视图电子邮件
- iis - 如果文件名不是拉丁文,则 Plesk for windows 备份名称错误
- r - 将 char 转换为 num R
- javascript - After Effects 脚本:将多个字符样式从父文本继承到子文本
- azure - 使用新的 Azure Powershell 命令获取租户 ID (Az)
- flutter - Dart 分析检测到未使用的字段......我错过了什么?
- javascript - useState 错误,我找不到解决方案
- javascript - UnhandledPromiseRejectionWarning:BulkWriteError:E11000 重复键错误集合 - MongoDB
- agda - 证明子类型、终止检查、`subst` 的反转引理