1

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

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

在这个例子中,我只是WorkerID = 412. @p0但是,由于LINQ 输出的注释格式,此输出不会直接在 SQL Management Studio 查询窗口中执行。

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

谢谢!

笔记:

我知道我可以在顶部进行定义,如SQL/LINQ 调试帮助@p0中所示,但是 - 我有很多这样的查询,比如 20 个参数,所以复制和粘贴工作变得很繁琐......

4

1 回答 1

1

如果不手动(或通过某种解析以编程方式)插入参数的值,就无法直接执行上面的操作。

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

于 2009-12-17T15:47:41.623 回答