【发布时间】:2020-09-02 13:46:02
【问题描述】:
我有一个名为 schoolrep 的对象,这个 schoolrep 包含许多教育级别 ID 我的 linq 查询给我错误
指定的过滤条件无效
我将发送教育级别 ID 列表,我需要返回具有过滤器中发送的所有教育级别的学校代表
以下是过滤器,我正在尝试使其固定值进行测试
List<long> lst = new List<long> { 1, 2, 3 };
下面是表达式
Expression <Func<SchoolRepresentative, bool>> filterExpression = x =>
x.SchoolRepEducationLevels.Select(x=>x.EducationLevelId).SequenceEqual(lst)
【问题讨论】:
-
简答 - 不支持。
-
我该如何处理这个问题
-
在概念层面上,要意识到编写 SQL 来做到这一点是很困难的。然后,一旦您接受这一点,请意识到这就是不支持它的原因。 :)
-
在实践中,这意味着您可能需要在内存中而不是在数据库中执行此操作(即全部拉下,然后在本地进行 SequenceEqual)。
-
具有过滤器中发送的所有教育级别的学校代表,但
SequnceEquals不这样做,它做得更多。
标签: c# .net-core entity-framework-core linq-to-entities