如何获得准备执行的查询?

时间:2014-05-13 12:39:17

标签: entity-framework

是否可以使用EF上下文的内联参数获取SQL个查询? 我希望能够将查询复制粘贴到管理工作室并执行它们。

我使用ctx.Database.Log委托,但它会在评论中跟踪参数值的查询,例如:

   .... WHERE [Extent1].[Name] = @p__linq__0

   -- p__linq__0: 'ApproveReminder' (Type = AnsiString, Size = 8000)

如果没有先编辑它们就无法运行。

2 个答案:

答案 0 :(得分:1)

如果我理解您的问题,可以使用SQL Server Profiler执行此操作。

运行它,然后设置一个配置文件,观察EF正在连接的服务器。在它运行时,执行您的代码,以便您感兴趣的EF查询针对服务器运行。然后停止配置文件。

如果您仔细阅读它所记录的内容,您应该能够非常轻松地识别您的查询。然后单击它,完整的查询文本将出现在屏幕底部的窗口中。

答案 1 :(得分:0)

您可以使用Hibernating Rhinos Entity Framework Profiler(商业软件),也可以这样做:

var query = context.Customers.Where(...);
((System.Data.Objects.ObjectQuery)  query).ToTraceString();

http://visualstudiomagazine.com/blogs/tool-tracker/2011/11/seeing-the-sql.aspx

相关问题