2013-09-24 14 views
7

私はAppStore内でServiceStack MiniProfilerを有効にしています(Application_Start内)。私のページでOrmLiteによって生成されたSQLを見ることができます。 (SS v3.9.59.0を使用して)ServiceStack MiniProfilerは、バインドされたパラメータ名だけでなく、SQLパラメータ値を表示できますか?

何かできないプロファイルトレースに表示されているのは、バインドされたパラメータの値です。 OrmLiteがLINQ式を@ 0に変換すると、クエリの一部としてDBに送られた値を見ることができません。私は本当にこのクエリの@0のために送られたものを値知りたい

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

はここプロファイラから例のトレースです。

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配列にバインドされたパラメータ名とその値が表示されます。私はレンダリングされたプロファイラの出力でそれを見ることができません。

私はパラメータ値を表示するために何をする必要がありますか?

答えて

3

回答がここで見つけることができます:Can MvcMiniProfiler display SQL parameter values?

はのApplication_Start

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

にこれを追加しかし、パラメータの型としてはnvarchar/varchar型を使用した場合、小さな問題があるように思われます。これはtopicを参照してください。

+0

いいえ。それは動作しません。投稿したコードスニペットは、元のMvcMiniProfilerプロジェクトで動作し、ServiceStackに組み込まれたフォークでは動作しません。 SSフォークされたコードは次のようになります。 Profiler.Settings.SqlFormatter = new ServiceStack.MiniProfiler.SqlFormatters.SqlServerFormatter(); しかしそれでも動作しません。私は@ 0記号だけを見るが、@ 0の値は見ない –

関連する問題