我在AppHost中启用了ServiceStack MiniProfiler(在Application_Start中),我可以在我的页面中查看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数组中看到绑定参数名称及其值。我只是在渲染的探查器输出中看不到它。
我需要做些什么才能显示参数值?
答案 0 :(得分:3)
答案可以在这里找到:Can MvcMiniProfiler display SQL parameter values?
将其添加到Application_Start
MiniProfiler.Settings.SqlFormatter =
new StackExchange.Profiling.SqlFormatters.SqlServerFormatter();
但是,当使用nvarchar / varchar作为参数类型时,似乎存在一个小问题。请参阅此topic。