【问题标题】:Executing LINQ-to-SQL Debug Output?执行 LINQ-to-SQL 调试输出?
【发布时间】:2009-12-17 15:39:18
【问题描述】:

当您通过 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

在这个例子中,我只是用ID = 412 提取办公室中每个Worker 的一些信息。但是,由于 LINQ 输出的 @p0 注释格式,此输出不会直接在 SQL Management Studio 查询窗口中执行。

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

谢谢!

注意:

我知道我可以在顶部定义@p0,如Help with SQL/LINQ Debugging 所示,但是 - 我有很多这样的查询需要大约 20 个参数,所以复制和粘贴工作变得很繁琐。 ...

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 是的 - 我想我总是可以打开探查器...虽然能够直接从您的开发环境中获取它很好,例如使用 DebuggerWriter:u2u.info/Blogs/Kris/Lists/Posts/Post.aspx?ID=11
    • 我最终编写了一个正则表达式解析器,它可以搜索和替换必要的值。现在能轻松执行真是太好了!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-12
    • 1970-01-01
    • 1970-01-01
    • 2010-12-15
    • 1970-01-01
    相关资源
    最近更新 更多