LINQ:查询非常慢

时间:2018-10-24 14:20:41

标签: linq

我具有以下数据库结构(仅显示相关表): enter image description here 我需要获取表“ Propietario”中所有元素的列表,并且每个元素都必须在“ Clave”中具有其所有相关元素的列表。具体来说,我需要“ Clave”中的“ CodigoClave”字段。

此外,我需要能够过滤任何字段的结果。

这是我到目前为止提出的:

ngOnInit() {
  orderArray.push(obj);
}

它可以工作,但是速度太慢(需要几分钟)。我设法通过使recordsNumber = context.Propietarios.Count()来使初始查询(第一页,未过滤)快速进行,但这在过滤时会破坏分页。而且无论如何,如果我进行过滤或转到末尾的页面,那真的会很慢。

如何使查询更快? 我的猜测是查询几乎遍历所有表,所以我不知道是否有解决方案不涉及更改数据模型。

1 个答案:

答案 0 :(得分:1)

这是因为您正在调用AsEnumerable,正在将Propietarios表中的所有数据提取到内存中,并且在您调用该方法后执行的其余操作都是使用Linq to Objects而不是Linq执行的到Entities,因此您的查询不会转换为sql。尝试将其删除

看看这个post,以防您需要更多信息AsEnumerable与EF配合使用

相关问题