2009-09-23 60 views
1

我正在使用PredicateBuilder,这意味着我正在使用AsExpandable扩展方法。问题是我无法跟踪我的SQL查询,因为当我尝试将查询转换为ObjectQuery以便我可以对其执行ObjectQuery.ToTraceString()调用时,会引发以下错误...如何在使用PredicateBuilder/AsExpandable时跟踪linq查询?

无法将'LinqKit.ExpandableQuery`1 [Genesis.Person]'类型的类型转换为类型'System.Data.Objects.ObjectQuery'。

任何想法?

回答

4

我会建议运行在LINQPad您的查询转储(),并使用SQL选项卡查看生成的SQL。做到这一点,将LINQPad连接到实体框架上下文,按F4键入LinqKit.dll和LinqKit作为命名空间导入。让我知道如果您需要额外的指导如何做到这一点。

+0

好吧,明天我会回去工作,但它似乎是一个合理的方式来获取SQL ... – Calanus 2009-10-04 17:02:44

+0

是的,这样做的工作 - 谢谢。 – Calanus 2009-10-05 07:57:01

1

我不熟悉你的确切问题,但你不能在SQL服务器上使用(例如,假设MSSQL的分析器)运行跟踪?

这仍然让你看到执行的查询,你可以限制它只是你的机器被记录......