我具有以下数据库结构(仅显示相关表): 我需要获取表“ Propietario”中所有元素的列表,并且每个元素都必须在“ Clave”中具有其所有相关元素的列表。具体来说,我需要“ Clave”中的“ CodigoClave”字段。
此外,我需要能够过滤任何字段的结果。
这是我到目前为止提出的:
ngOnInit() {
orderArray.push(obj);
}
它可以工作,但是速度太慢(需要几分钟)。我设法通过使recordsNumber = context.Propietarios.Count()来使初始查询(第一页,未过滤)快速进行,但这在过滤时会破坏分页。而且无论如何,如果我进行过滤或转到末尾的页面,那真的会很慢。
如何使查询更快? 我的猜测是查询几乎遍历所有表,所以我不知道是否有解决方案不涉及更改数据模型。
答案 0 :(得分:1)
这是因为您正在调用AsEnumerable
,正在将Propietarios
表中的所有数据提取到内存中,并且在您调用该方法后执行的其余操作都是使用Linq to Objects而不是Linq执行的到Entities,因此您的查询不会转换为sql。尝试将其删除
看看这个post,以防您需要更多信息AsEnumerable
与EF配合使用