Минипрофилятор плюс EntityFramework плюс EFProviderWrapperToolkit?

#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
MyApp.Infrastructure.Repository.EF.GenericRepository
1.get_ObjectSet() в C:srcMyApp.2010MyApp .Инфраструктура.Репозиторий.EF Репозиторий.EF GenericRepository.cs:89 MyApp.Инфраструктура.Репозиторий.EF.GenericRepository`1.GetQuery() в C:srcMyApp.2010MyApp .Инфраструктура.Репозиторий.EF Репозиторий.EF GenericRepository.cs:102

Ответ №1:

Без изменения любого из них ответ отрицательный, потому что они оба заменяют поставщика базы данных, но эти замены несовместимы.