繁体   English   中英

在 EF Core 3.1 中加入群组

[英]Group join in EF Core 3.1

我正在尝试在 EF 核心 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翻译。 他们拒绝这样做并打开了无用的Query: Support GroupJoin 当它是最终查询操作符 #19930 时,我继续为这种翻译而战。 所以请去那里评论/投票支持完整的翻译请求。

您还将在那里找到解决方法 - 而不是不受支持的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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM