#c# #asp.net-mvc #entity-framework #mvc-mini-profiler
#c# #asp.net-mvc #entity-framework #mvc-мини-профилировщик
Вопрос:
Можно ли использовать минипрофилятор 1.9 с EntityFramework, а также с EFProviderWrapperToolkit? Я также использую метод обновления edmx из базы данных, а не code first.
У меня EFProviderWrapperToolkit уже установлен и работает очень хорошо, его поставщик кэширования имеет большое значение. Но, похоже, это противоречит минипрофилятору:
protected void Application_BeginRequest()
{
if (Request.IsLocal)
{
//MiniProfiler.Start();
MiniProfilerEF.Initialize();
}
}
Вероятно, это связано с тем, что и MiniProfiler, и EFProviderWrapperToolkit пытаются обернуть
соединение с БД.
Выдает это сообщение об ошибке:
Невозможно привести объект типа ‘MvcMiniProfiler.Data.EFProfiledDbConnection’ для ввода ‘EFProviderWrapperToolkit.DbConnectionWrapper’.
Строка 229: DbProviderFactory factory = DbProviderFactories.GetFactory(имя_инварианта); Строка 230: переменная connectionWrapper = factory .createConnection(); Строка 231: оболочка DbConnectionWrapper = (DbConnectionWrapper)connectionWrapper; Строка 232: оболочка.WrappedConnection = соединение; Строка 233: connection = connectionWrapper;
[InvalidCastException: невозможно привести объект типа ‘MvcMiniProfiler.Data.EFProfiledDbConnection’ для ввода ‘EFProviderWrapperToolkit.DbConnectionWrapper’.] EFProviderWrapperToolkit.DbConnectionWrapper.WrapConnection(соединение DbConnection, строка[] wrapperProviderInvariantNames) в C:srcMyApp.2010EF4ProviderWrappersEFProviderWrapperToolkitDbConnectionWrapper.cs:231 efproviderwrappert toolkit.EntityConnectionWrapperUtils.Создайте entityconnectionwithwrappers(строка entityConnectionString, EntityConnectionStringBuilder ecsb, String[] wrapperProviders) в C:srcMyApp.2010EF4ProviderWrappersEFProviderWrapperToolkitEntityConnectionWrapperUtils.cs:60 Мое приложение.Infrastructure.Repository.EF.ExtendedMyAppContext..ctor(строка ConnectionString, EntityConnectionStringBuilder ecsb) в C:srcMyApp.2010MyApp .Инфраструктура.Репозиторий.EFExtendedMyAppContext.cs:19 MyApp.Инфраструктура.Репозиторий.EF.ObjectContextManager.GetObjectContext() в C:srcMyApp.2010MyApp .Инфраструктура.Репозиторий.EF Репозиторий.EF ObjectContextManager.cs:62 MyApp.Инфраструктура.Репозиторий.EF.GenericRepository
1.get_ObjectContext() in C:srcMyApp.2010MyApp.Infrastructure.Repository.EFRepository.EFGenericRepository.cs:81
1.get_ObjectSet() в C:srcMyApp.2010MyApp .Инфраструктура.Репозиторий.EF Репозиторий.EF GenericRepository.cs:89 MyApp.Инфраструктура.Репозиторий.EF.GenericRepository`1.GetQuery() в C:srcMyApp.2010MyApp .Инфраструктура.Репозиторий.EF Репозиторий.EF GenericRepository.cs:102
MyApp.Infrastructure.Repository.EF.GenericRepository
Ответ №1:
Без изменения любого из них ответ отрицательный, потому что они оба заменяют поставщика базы данных, но эти замены несовместимы.