MiniProfiler加上EntityFramework加上EFProviderWrapperToolkit?

时间:2011-10-20 23:38:47

标签: c# asp.net-mvc entity-framework mvc-mini-profiler

是否可以将MiniProfiler 1.9与EntityFramework一起使用,还可以与EFProviderWrapperToolkit一起使用?我也在使用数据库方法的更新edmx,而不是代码。

我已经安装了EFProviderWrapperToolkit并且运行良好,它的缓存提供程序有很大的不同。但它似乎与MiniProfiler冲突:

protected void Application_BeginRequest()
{
    if (Request.IsLocal)
    {
        //MiniProfiler.Start();
        MiniProfilerEF.Initialize();
    }
}

可能是因为MiniProfiler和EFProviderWrapperToolkit都试图包装 数据库连接。

给出此错误消息:

  

无法转换“MvcMiniProfiler.Data.EFProfiledDbConnection”类型的对象       输入'EFProviderWrapperToolkit.DbConnectionWrapper'。

     

第229行:DbProviderFactory factory = DbProviderFactories.GetFactory(invariantName);       第230行:var connectionWrapper = factory.CreateConnection();       第231行:DbConnectionWrapper wrapper =(DbConnectionWrapper)connectionWrapper;       第232行:wrapper.WrappedConnection = connection;       第233行:connection = connectionWrapper;

     

[InvalidCastException:无法将'MvcMiniProfiler.Data.EFProfiledDbConnection'类型的对象强制转换为'EFProviderWrapperToolkit.DbConnectionWrapper'。          EFProviderWrapperToolkit.DbConnectionWrapper.WrapConnection(DbConnection连接,String [] wrapperProviderInvariantNames)在C:\ src \ MyApp.2010 \ EF4ProviderWrappers \ EFProviderWrapperToolkit \ DbConnectionWrapper.cs:231          EFProviderWrapperToolkit.EntityConnectionWrapperUtils.CreateEntityConnectionWithWrappers(String entityConnectionString,EntityConnectionStringBuilder ecsb,String [] wrapperProviders)在C:\ src \ MyApp.2010 \ EF4ProviderWrappers \ EFProviderWrapperToolkit \ EntityConnectionWrapperUtils.cs:60          C:\ src \ MyApp.2010 \ MyApp.Infrastructure.Repository.EF \ ExtendedMyAppContext.cs中的MyApp.Infrastructure.Repository.EF.ExtendedMyAppContext..ctor(String connectionString,EntityConnectionStringBuilder ecsb):19          C:\ src \ MyApp.2010 \ MyApp.Infrastructure.Repository.EF \ Repository.EF \ ObjectContextManager.cs中的MyApp.Infrastructure.Repository.EF.ObjectContextManager.GetObjectContext():62          MyApp.Infrastructure.Repository.EF.GenericRepository 1.get_ObjectContext() in C:\src\MyApp.2010\MyApp.Infrastructure.Repository.EF\Repository.EF\GenericRepository.cs:81 MyApp.Infrastructure.Repository.EF.GenericRepository 1.get_ObjectSet()在C:\ src \ MyApp.2010 \ MyApp.Infrastructure.Repository.EF \ Repository.EF \ GenericRepository.cs:89          MyApp.Infrastructure.Repository.EF.GenericRepository`1.GetQuery()在C:\ src \ MyApp.2010 \ MyApp.Infrastructure.Repository.EF \ Repository.EF \ GenericRepository.cs:102

1 个答案:

答案 0 :(得分:1)

如果不修改其中任何一个,答案就是否定,因为它们都替换了数据库提供程序,但这些替换不兼容。