Использование Entity Framework 5, MiniProfiler 2. Nuget установлен для MiniProfiler.EF.
Создание соединения следующим образом
var conn = new EFProfiledDbConnection(DbConnections.GetSqlConnection(), MiniProfiler.Current);
return new MyDbContext(conn, true);
При попытке получить данные с использованием DbContext возвращается следующая ошибка:
Unable to determine the provider name for connection of type
'StackExchange.Profiling.Data.EFProfiledDbConnection'.`
Я попытался добавить следующее в web.config:
<system.data>
<DbProviderFactories>
<remove invariant="StackExchange.Profiling.Data.ProfiledDbProviderFactory" />
<add name="StackExchange.Profiling.Data.ProfiledDbProviderFactory"
invariant="StackExchange.Profiling.Data.ProfiledDbProviderFactory"
description="StackExchange.Profiling.Data.ProfiledDbProviderFactory"
type="StackExchange.Profiling.Data.ProfiledDbProviderFactory, MiniProfiler, Version=2.0.2.0, Culture=neutral, PublicKeyToken=b44f9351044011a3" />
</DbProviderFactories>
</system.data>
Это не помогает. Я также попробовал варианты этого, используя различные EFProviderFactories в MiniProfiler.EntityFramework, но не смог заставить их работать.
Если я попытаюсь запустить MiniProfilerEF.Initialize();
в App_Start
, тогда при попытке доступа к БД я получаю следующую ошибку:
Код, сгенерированный с использованием шаблонов T4 для базы данных First и Model First, может работать некорректно, если используется в режиме Code First. Чтобы продолжить использование базы данных First или Model First, убедитесь, что строка подключения Entity Framework указана в файле конфигурации исполняемого приложения. Чтобы использовать эти классы, которые были сгенерированы из Database First или Model First, с кодом First добавьте любую дополнительную конфигурацию с использованием атрибутов или DbModelBuilder API, а затем удалите код, который генерирует это исключение.
Удаление раздела DbProviderFactories
из web.config и запуск MiniProfilerEF.Initialize_EF42();
в App_Start
приводит к исходной ошибке.
Поскольку на странице MiniProfiler указано, что MiniProfilerEF.Initialize()
предназначен только для кода, похоже, что это не способ пойти в любом случае.
Другой поиск не дал мне никаких других возможностей, кроме добавления в раздел Web.Config. Любые рекомендации о том, как действовать? Цель состоит в том, чтобы использовать модель First DbContext, профилированную Mvc MiniProfiler.