执行LINQ-to-SQL调试输出?

时间:2009-12-17 15:39:18

标签: sql-server linq-to-sql debugging parameterized

当您通过DataContext对象上的Log属性记录LINQ-to-SQL的查询输出时,输出类似于:

SELECT [t0].[fullaname], [t0].[Worker], [t0].[Office]
FROM [dbo].[Workers] AS [t0]
WHERE [t0].[OfficeID] = @p0
ORDER BY [t0].[Name]
-- @p0: Input Int (Size = 0; Prec = 0; Scale = 0) [412]
-- Context: SqlProvider(Sql2005) Model: AttributedMetaModel Build: 3.5.30729.1

在此示例中,我只是使用Worker撤回Office中每个ID = 412的一些信息。但是,由于LINQ输出的@p0注释格式,此输出不会直接在SQL Management Studio查询窗口中执行。

有没有人知道是否存在采用这种格式的存储过程,以便我可以执行它?我查看了paramaterized查询过程,但也许我只是没有看到它。如果没有程序,我将编写一个解析器,将这种格式转换为“普通”SQL ...

谢谢!

注意:

我知道我可以在此顶部定义@p0,如Help with SQL/LINQ Debugging所示,但是 - 很多这些查询我已经采取了20个参数,所以它变得很多工作复制和粘贴....

1 个答案:

答案 0 :(得分:1)

没有办法直接执行上面的内容而无需手动(或通过某种解析方式编程)插入参数值。

如果您使用sql profiler,您将获得一个可执行的动态sql语句,这是一个更好的方法,但我意识到这并不总是可行。