1

我有一些 EF 无法支持的查询:空间、索引提示等。不过,大多数数据都是 EF 友好的,我可以使用 linq 提供程序。

示例:我有 Person、PersonAddress 和 Address 表。在地址上,我有一个空间索引,必须用于定义搜索区域。基于此,我想进一步过滤,例如 Person.BirthDate。我已经在 T-SQL 中实现了这个,但只有固定参数。

相反,我想组合空间查询和实体框架查询,为此我需要从 ObjectQuery 获取 SQL 命令文本和参数。当我有这些组合时,这些将很容易。不幸的是,我只能使用 ObjectQuery.ToTraceString() 获取命令文本。

我正在使用linqpad,我看到它能够同时获取参数和文本,所以这一定是可能的。

实现这一目标的最佳方法是什么?

4

1 回答 1

0

LinqPad 最有可能使用类似于所有跟踪和分析工具的东西。检查样本的跟踪包装。它只是生成 SQL 查询的提供者的包装器,但在包装器级别上,您完全不了解执行查询的类型。它只是DbCommand。当您有执行的 linq 查询的上下文时修改 SQL 的唯一方法是在自定义提供程序中。

于 2011-04-01T18:41:13.360 回答