2013-09-24 26 views
7

Mam ServiceStack MiniProfiler włączone w moim AppHost (w Application_Start) i mogę wyświetlić SQL generowane przez OrmLite na mojej stronie. (używając SS v3.9.59.0)Czy usługa ServiceStack MiniProfiler może wyświetlać wartości parametrów SQL, a nie tylko nazwy powiązanych parametrów?

Co mogę nie mogę widzieć w śladzie profilu są wartości związane parametrów. Więc jeśli OrmLite przetłumaczy wyrażenie LINQ na @ 0, nie widzę wartości wysłanej do DB jako części zapytania.

Oto przykład ślad od profilera:

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

Naprawdę chciałbym wiedzieć, jaka wartość została wysłana do @0 dla tego zapytania.

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

Próbowałem kilka wariantów nieruchomości Profiler.Settings.SqlFormatter:

  • SqlFormatter = new InlineFormatter();
  • SqlFormatter = new InlineFormatter(true);
  • SqlFormatter = new SqlServerFormatter();
  • nie ustawienie SqlFormatter w ogóle, pozostawiając ją na wartość domyślną

Wszystkie z nich mają taki sam wynik, pokazując tylko @0, ale nie jego wartość.

Po kliknięciu linku "Udostępnij" widzę zarówno powiązaną nazwę parametru, jak i jego wartość w wynikowej tablicy JSON. Po prostu nie widzę tego w renderowanym wyjściu profilera.

Jakieś pomysły, co muszę zrobić, aby wyświetlić wartości parametrów?

Odpowiedz

3

Odpowiedź można znaleźć tutaj: Can MvcMiniProfiler display SQL parameter values?

Dodaj to do Application_Start

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

Jednak nie wydaje się być mały problem przy użyciu nvarchar/varchar jako typ parametru. Zobacz to topic.

+0

Nie. To nie działa. Opublikowany fragment kodu działa dla oryginalnego projektu MvcMiniProfiler, a nie z widelca osadzonego w ServiceStack. Kod rozwidlony SS będzie: Profiler.Settings.SqlFormatter = new ServiceStack.MiniProfiler.SqlFormatters.SqlServerFormatter(); ale to nadal nie działa. Widzę tylko symbol @ 0, ale nie wartość @ 0 –