8

我在我的 AppHost(在 Application_Start 中)中启用了 ServiceStack MiniProfiler,我可以在我的页面中查看 OrmLite 生成的 SQL (使用 SS v3.9.59.0)

我在配置文件跟踪中看不到的是绑定参数的值。因此,如果 OrmLite 将 LINQ 表达式转换为 @0,我看不到作为查询的一部分发送到数据库的值。

这是来自分析器的示例跟踪:

SELECT "SettingGroup" , "SettingKey" , "LastModified" , "SettingValue"  
FROM "GlobalSetting"
WHERE (("SettingGroup" = @0) AND ("SettingKey" = 'a3849d59864b252a2022b4b8a164add1'))

我真的很想知道@0为这个查询发送了什么值。

protected void Application_Start(object sender, EventArgs e)
{
    Profiler.Settings.SqlFormatter = new InlineFormatter(true);
    new AppHost().Init();
}

我尝试了该Profiler.Settings.SqlFormatter属性的一些变体:

  • SqlFormatter = new InlineFormatter();
  • SqlFormatter = new InlineFormatter(true);
  • SqlFormatter = new SqlServerFormatter();
  • 根本没有设置SqlFormatter,将其保留为默认值

它们都有相同的结果,只显示@0而不显示它的价值。

如果单击“共享”链接,我可以在生成的 JSON 数组中看到绑定的参数名称及其值。我只是在渲染的探查器输出中看不到它。

我需要做什么来显示参数值?

4

1 回答 1

4

可以在这里找到答案:MvcMiniProfiler 可以显示 SQL 参数值吗?

将此添加到 Application_Start

MiniProfiler.Settings.SqlFormatter = 
    new StackExchange.Profiling.SqlFormatters.SqlServerFormatter();

然而,当使用 nvarchar / varchar 作为参数类型时似乎存在一个小问题。请参阅本主题

于 2013-11-14T14:19:04.750 回答