首页 > 解决方案 > 使用 ToTraceString 与 sproc 的实体框架动态过滤器查询

问题描述

我有一个带有复杂过滤选项的网格视图,查询是在我的 dbcontext 上使用 IQueryable 构建的。这工作正常,表可以包含大量数据,但结果是用理智的分页选项过滤的。我现在需要实现一个导出功能,该功能必须与网格可用的所有过滤选项一起使用。

假设该表可能包含一百万行。

我想我会通过用 EF 执行这个来解决性能问题。我也可以创建一个存储过程,但这会非常复杂,并且逻辑会从 c# 代码中复制出来。

改用构建 IQueryable 并使用生成查询字符串的现有逻辑是否是个好主意

((System.Data.Objects.ObjectQuery)myIqueryable).ToTraceString()

然后我可以使用 ExecuteStoreQuery (或任何其他直接运行 sql 的方式)运行生成的查询?

我对此进行了测试,它似乎工作正常,但我不确定与存储过程相比性能如何,或者我是否会遇到我没有想到的问题。

标签: c#sqlentity-framework

解决方案


推荐阅读