使mvc迷你探查器与EF 4.2一起工作时出现问题

本文关键字:工作 一起 问题 EF mvc 探查 | 更新日期: 2023-09-27 18:21:36

我已经搜索了堆栈溢出的帖子,但到目前为止运气不佳。我已经开始了一个新的MVC 3项目,它使用实体框架4.2。我用nuget安装了包MiniProfiler、MiniProfiler.MVC3和MiniProfiler.EF(MiniProfiler.EF也添加到了我的域层中)。没有分析实体框架,一切都可以正常工作。当我通过取消对MiniProfilerEF.Initialize();行的注释来配置EF时,我得到错误:

未能找到"MvcMiniProfiler.Data.EFProfiledDbConnection"类型的指定存储连接的提供程序工厂。已在程序集中定义了"MvcMiniProfiler.Data.EFProfiledDbConnection"的注册提供程序工厂和所有提供程序工厂中搜索将生成匹配连接的工厂

当我阅读EF 4.1的更新时,我试图获得最新的源代码。现在,当我运行该项目时,我得到了错误:

无法确定类型为"MvcMiniProfiler.Data.EFProfiledDbConnection"的连接的提供程序名称。

我查阅的文档有点令人困惑,因为我分不清什么是新的,什么是旧的。从这篇文章来看,我似乎需要修改web.config中的任何内容。我还缺少另一个步骤吗?谢谢你的帮助。

使mvc迷你探查器与EF 4.2一起工作时出现问题

您应该将MiniProfilerEF.Initialize();放在对数据库的任何访问之前:

protected void Application_Start()
{
       MiniProfilerEF.Initialize();
       // Start access database from here ...
       // For example call MyDbContext.Database.Exists();
}

Web.config文件中有这个条目吗?

  <system.data>
    <DbProviderFactories>
      <remove invariant="MvcMiniProfiler.Data.ProfiledDbProvider" />
      <add name="MvcMiniProfiler.Data.ProfiledDbProvider" invariant="MvcMiniProfiler.Data.ProfiledDbProvider" description="MvcMiniProfiler.Data.ProfiledDbProvider" type="MvcMiniProfiler.Data.ProfiledDbProviderFactory, MvcMiniProfiler.EntityFramework, Version=1.9.1.0, Culture=neutral, PublicKeyToken=b44f9351044011a3" />
    </DbProviderFactories>
  </system.data>