Настройка mvc-mini-profiler для EF-db- первая - PullRequest
5 голосов
/ 27 июля 2011

Я пытаюсь использовать мини-профилировщик с EF-кодом старого стиля - база данных сначала.

Пока:

  • Я создал контекст БД, используя:

        string connectionString = GetConnectionString();
        var connection = new EntityConnection(connectionString);
        var profiledConnection = ProfiledDbConnection.Get(connection);
        _context = profiledConnection.CreateObjectContext<MyEntitiesType>();
    
  • но затем я нажал «Невозможно найти запрошенный поставщик данных .Net Framework. Возможно, он не установлен». который я обошел, используя <system.data> ссылку на провайдера MvcMiniProfiler:

     <system.data>
       <DbProviderFactories>
         <remove invariant="MvcMiniProfiler.Data.ProfiledDbProvider" />
         <add name="MvcMiniProfiler.Data.ProfiledDbProvider" invariant="MvcMiniProfiler.Data.ProfiledDbProvider" description="MvcMiniProfiler.Data.ProfiledDbProvider" type="MvcMiniProfiler.Data.ProfiledDbProviderFactory, MvcMiniProfiler" />
        </DbProviderFactories>
      </system.data>
    
  • но сейчас я попадаю в переполнение стека где-то в C:\Users\sam\Desktop\mvc-mini-profiler\MvcMiniProfiler\Data\ProfiledDbProviderServices.cs. Глядя на последний источник Мне интересно, если я как-то неправильно настроил это - если каким-то образом мое профилированное соединение содержит другое профилированное соединение, содержащее ....

Любая помощь / совет?


Обновление - глядя на http://code.google.com/p/mvc-mini-profiler/wiki/FrequentlyAskedQuestions, по крайней мере, еще один человек видел такую ​​же проблему с 1,7 - хотя (а) он сначала пишет код. Я продолжу играть, чтобы посмотреть, смогу ли я решить, что делать ...

1 Ответ

4 голосов
/ 02 сентября 2011

Попробуйте 1.9. При обновлении я просто добавил новый метод Initialize в Application_Start и удалил раздел конфигурации DbProviderFactories, и теперь у меня есть профилирование SQL с EF (даже 2 базы данных, одна с кодом сначала, а вторая с базой данных).

protected void Application_Start()
{
    ....other code

    MiniProfilerEF.Initialize();
}
...