使用带有包含关系的OrderBy和Take()的持续问题

时间:2016-01-11 12:09:40

标签: asp.net-core entity-framework-core

我知道在EF7 Github回购中出现了很多问题,这些问题似乎仍然存在于最新的RC2夜间版本中。

当您尝试在查询中包含关系时,问题似乎是在使用OrderBy和Take()时。我相信,根据之前在Github上提出的问题,在连接中生成的SQL是不正确的,并没有考虑OrderBy。阅读回复后,人们建议使用Skip(0).Take(x)作为解决方法,但不幸的是,在我的方案中,这不起作用。

在我的特定场景中,我正在查询基于祖先PK的模型。因此,为了解决这个问题,我没有将PK直接传递给查询,而是将祖先模型添加到List<T>并在查询中使用了以下代码:

之前(在包含嵌套关系时不工作):p => p.examplePK == id

之后(似乎工作): p => myList.Select(c => c.myId).Contains(p.examplePK)

我不完全确定为什么第二个例子有效,我会感激任何可以给出的信息 - 这可能会在这里进行一些客户端评估吗?从我收集的内容来看,第二个例子将执行SQL IN语句,不是吗?

提前致谢!

0 个答案:

没有答案