Проблема с получением мини профилировщика MVC для работы с EF 4.2 - PullRequest
2 голосов
/ 26 января 2012

Я просмотрел сообщения о переполнении стека, но пока не повезло. Я начал новый проект MVC 3, который использует Entity Framework 4.2. Я использовал nuget для установки пакетов MiniProfiler, MiniProfiler.MVC3 и MiniProfiler.EF (MiniProfiler.EF также был добавлен в мой слой домена). Без профилирования сущности все работает нормально. Когда я профилирую EF, раскомментировав строку MiniProfilerEF.Initialize();, я получаю ошибку:

Не удалось обнаружить фабрику провайдера для указанного подключения хранилища типа 'MvcMiniProfiler.Data.EFProfiledDbConnection'. На фабриках зарегистрированных поставщиков и на всех фабриках поставщиков в сборке, где определено «MvcMiniProfiler.Data.EFProfiledDbConnection», был произведен поиск фабрики, которая создала бы соответствующее соединение.

Я попытался получить последний исходный код, так как я читал, что обновление для EF 4.1 требовало его. Теперь, когда я запускаю проект, я получаю сообщение об ошибке:

Невозможно определить имя поставщика для подключения типа 'MvcMiniProfiler.Data.EFProfiledDbConnection'.

Документация, которую я просмотрел, немного сбивает с толку, так как я не могу сказать, что нового, а что старого. С этого поста кажется, что мне нужно что-то изменить в моем web.config. Есть еще один шаг, который я пропускаю? Спасибо за помощь.

Ответы [ 2 ]

1 голос
/ 13 апреля 2012

Вы должны поставить MiniProfilerEF.Initialize(); строку перед любым доступом к базе данных:

protected void Application_Start()
{
       MiniProfilerEF.Initialize();

       // Start access database from here ...
       // For example call MyDbContext.Database.Exists();
}
0 голосов
/ 19 марта 2012

У вас есть эта запись в файле Web.config?

  <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.EntityFramework, Version=1.9.1.0, Culture=neutral, PublicKeyToken=b44f9351044011a3" />
    </DbProviderFactories>
  </system.data>
...