我已经通过堆栈溢出帖子进行了搜索但到目前为止还没有运气。我已经开始使用Entity framework 4.2的新MVC 3项目。我用nuget来安装MiniProfiler,MiniProfiler.MVC3和MiniProfiler.EF软件包(MiniProfiler.EF也被添加到我的域层)。没有分析实体框架,一切正常。当我通过取消注释行MiniProfilerEF.Initialize();
来分析EF时,我收到错误:
无法发现“MvcMiniProfiler.Data.EFProfiledDbConnection”类型的指定商店连接的提供程序工厂。已定义已定义“MvcMiniProfiler.Data.EFProfiledDbConnection”的程序集中的已注册提供程序工厂和所有提供程序工厂,以查找将生成匹配连接的工厂。
我尝试获取最新的源代码,因为我阅读了EF 4.1的更新需要它。现在,当我运行项目时,我收到错误:
无法确定“MvcMiniProfiler.Data.EFProfiledDbConnection”类型连接的提供商名称。
我所经历的文件有点令人困惑,因为我无法分辨出什么是新的和什么是旧的。从this post开始,我似乎需要在web.config中修改任何内容。我还缺少另一个步骤吗?谢谢您的帮助。
答案 0 :(得分:1)
您应该将MiniProfilerEF.Initialize();
行放在之前对数据库进行任何访问:
protected void Application_Start()
{
MiniProfilerEF.Initialize();
// Start access database from here ...
// For example call MyDbContext.Database.Exists();
}
答案 1 :(得分:0)
您的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>