【发布时间】:2021-09-19 16:25:05
【问题描述】:
我正在尝试使用 fluent API 来包含另一个表,但想从父表引用一些键到父表,但是当我重新加载页面时会引发一些错误。
这是我的查询。
var allocations = _context.TblCourseAllocations
.Include(ca => ca.Department)
.Include(ca => ca.Department.TblCourses)
.Include(ca => ca.Department.TblPrograms)
.Include(ca => ca.Department.TblSemesters.Where(s => s.ProgramCode.Equals(ca.ProgramCode)))
.Where(ca => ca.EmployeeCode.Equals(employee.EmployeeCode)
& ca.SemesterName.Equals(semester)
& ca.PaymentStatus.Equals("Regular/Unpaid")
)
.AsSplitQuery()
.AsEnumerable().OrderBy(d => d.ProgramSession).GroupBy(ca => ca.CourseCode).ToList();
在 tblSemesters 上,我的条件不起作用,但我想实现多个条件。任何帮助或意见将不胜感激。
错误:
处理请求时发生未处理的异常。
InvalidOperationException:LINQ 表达式 'DbSet() .Where(t3 => EF.Property(EntityShaperExpression: EntityType: TblDepartment ValueBufferExpression:ProjectionBindingExpression: 内部 IsNullable: True , "DepartmentCode") != null && object.Equals( objA:EF.Property(EntityShaperExpression:EntityType: TblDepartment ValueBufferExpression:ProjectionBindingExpression: 内部 IsNullable: True , "DepartmentCode"), objB: EF.Property(t3, "DepartmentCode"))) .Where(t3 => t3.ProgramCode.Equals(ca.ProgramCode))' 无法翻译。 要么以可翻译的形式重写查询,要么切换 通过插入对“AsEnumerable”的调用来明确地进行客户评估, “AsAsyncEnumerable”、“ToList”或“ToListAsync”。看 https://go.microsoft.com/fwlink/?linkid=2101038 了解更多信息。
提前致谢
【问题讨论】:
-
至少您可以准确地告诉我们这些错误是什么。
-
如果您可以发布错误,那将很容易帮助您
-
justpaste.it/3gyw1 @Darshani 请检查我的错误
-
请edit您的问题并添加错误作为文本。问题的基本部分应包含在问题本身中。此外,它通常还有助于包含类和映射代码(如果存在)以及确切的 EF 核心版本(我猜是 5,因为过滤了 Include)。
-
嗨@MalikHamzaYounas,你能分享相关的表定义,以便我们更容易重现问题并帮助你解决它吗?
标签: c# asp.net asp.net-mvc asp.net-core entity-framework-core