Используя 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 для разработки сначала базы данных и сначала модели, может работать некорректно при использовании в режиме «Сначала код». Чтобы продолжить использование Database First или Model First, убедитесь, что строка подключения Entity Framework указана в файле конфигурации исполняемого приложения. Чтобы использовать эти классы, созданные из Database First или Model First, с Code First добавьте любую дополнительную конфигурацию с помощью атрибутов или DbModelBuilder API, а затем удалите код, который вызывает это исключение.
Удаление раздела DbProviderFactories
из web.config и запуск MiniProfilerEF.Initialize_EF42();
в App_Start
приводит к исходной ошибке.
Поскольку на странице MiniProfiler говорится, что MiniProfilerEF.Initialize()
в первую очередь предназначен только для кода, похоже, что это не лучший вариант.
Другой поиск не дал мне ничего другого, кроме добавления в раздел в Web.Config. Есть рекомендации, как действовать? Цель состоит в том, чтобы иметь возможность использовать Model First DbContext, профилированный Mvc MiniProfiler.
EF5
? community.miniprofiler.com/permalinks/ 99 / - person MisterIsaak   schedule 20.12.2012ProfiledDbConnection.CreateObjectContext<T>()
ожидает, чтоT
будет иметь типObjectContext
, тогда как в моем случае он имеет типDbContext
. Так что он не компилируется. - person Yaakov Ellis   schedule 27.01.2013((IObjectContextAdapter)yourDbContextInstance).ObjectContext
Lerman J. - Programming Entity Framework: DbContext, стр.204, 2012 г. - person berezovskyi   schedule 27.01.2013DbContextInstance
для использования таким образом - я пытаюсь создать и вернутьDbContextInstance
с помощьюProfiledDbConnection
для интеграции с MiniProfiler - person Yaakov Ellis   schedule 27.01.2013