带有实体框架5的MVC MiniProfiler模型第一个错误:无法确定提供程序名称

Yaa*_*lis 14 entity-framework mvc-mini-profiler asp.net-mvc-4 entity-framework-5

使用Entity Framework 5,MiniProfiler 2.为MiniProfiler.EF安装Nuget.

按如下方式创建连接

var conn = new EFProfiledDbConnection(DbConnections.GetSqlConnection(),                                                                      MiniProfiler.Current);
return new MyDbContext(conn, true);
Run Code Online (Sandbox Code Playgroud)

尝试使用DbContext检索数据时,将返回以下错误:

Unable to determine the provider name for connection of type     
'StackExchange.Profiling.Data.EFProfiledDbConnection'.`
Run Code Online (Sandbox Code Playgroud)

我尝试将以下内容添加到web.config:

<system.data>
  <DbProviderFactories>
    <remove invariant="StackExchange.Profiling.Data.ProfiledDbProviderFactory" />
    <add name="StackExchange.Profiling.Data.ProfiledDbProviderFactory" 
         invariant="StackExchange.Profiling.Data.ProfiledDbProviderFactory" 
         description="StackExchange.Profiling.Data.ProfiledDbProviderFactory"
         type="StackExchange.Profiling.Data.ProfiledDbProviderFactory, MiniProfiler, Version=2.0.2.0, Culture=neutral, PublicKeyToken=b44f9351044011a3" />
  </DbProviderFactories>
</system.data>
Run Code Online (Sandbox Code Playgroud)

这没有用.我也尝试过使用MiniProfiler.EntityFramework中不同的EFProviderFactories,但是无法使用它们.

如果我尝试运行MiniProfilerEF.Initialize();App_Start,然后我在尝试访问数据库时,出现以下错误:

如果在Code First模式下使用,使用T4模板为Database First和Model First开发生成的代码可能无法正常工作.要继续使用Database First或Model First,请确保在执行应用程序的配置文件中指定了Entity Framework连接字符串.要使用从Database First或Model First生成的这些类,使用Code First添加任何其他配置,使用属性或DbModelBuilder API,然后删除引发此异常的代码.

卸下DbProviderFactories从web.config部分,并运行MiniProfilerEF.Initialize_EF42();App_Start在原来的错误.

正如MiniProfiler页面所说的那样,MiniProfilerEF.Initialize()首先只是代码,这似乎不是一种可行的方式.

其他搜索没有给我任何其他的尝试,除了在Web.Config中添加部分.有关如何进行的任何建议?目标是能够使用由Mvc MiniProfiler分析的Model First DbContext.

amh*_*hed 8

你的global.asax看起来像这样吗?

public class MvcApplication : HttpApplication
{
    protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();

        WebApiConfig.Register(GlobalConfiguration.Configuration);
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);
        AuthConfig.RegisterAuth();
        AutomapperConfig.RegisterMappings();

        MiniProfiler.Settings.SqlFormatter = new StackExchange.Profiling.SqlFormatters.SqlServerFormatter();
        MiniProfilerEF.Initialize();
    }

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

    protected void Application_EndRequest(object sender, EventArgs e)
    {
        MiniProfiler.Stop(false);
    }
}
Run Code Online (Sandbox Code Playgroud)

我以常规方式实例化我的上下文:

var _database = new DinoContext(_connectionString);
Run Code Online (Sandbox Code Playgroud)