MiniProfiler MVC DBContext - 无法确定提供程序名称

时间:2013-09-18 15:34:55

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

我正在尝试使用迷你探查器来分析ef数据库操作,但我似乎可以让它工作。

我有:

public partial class BuzzEntities : DbContext
{
    public BuzzEntities() : 
        base(GetProfiledConnection(), true) 
    { 
    } 

    private static DbConnection GetProfiledConnection() 
    {
        var connectionString = ConfigurationManager.ConnectionStrings["BuzzEntities"].ConnectionString;
        var connection = new System.Data.EntityClient.EntityConnection(connectionString); 
        return new EFProfiledDbConnection(connection, MiniProfiler.Current); 
    }
}

然后我使用一个工作单元:

public class UnitOfWork : IDisposable
{
    private bool disposed = false;
    private BuzzEntities context = new BuzzEntities();
}

但是当我收到这个错误时:

无法确定“StackExchange.Profiling.Data.EFProfiledDbConnection”类型连接的提供者名称

我有

  <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>

在我的web.config

1 个答案:

答案 0 :(得分:0)

EF6 nuget已经发布。它可用here,可以使用Install-Package MiniProfiler.EF6 -Pre

进行安装

要初始化,只需在应用程序启动逻辑中调用以下内容:

using StackExchange.Profiling.EntityFramework6;

...

protected void Application_Start()
{
    MiniProfilerEF6.Initialize();
}

请务必在以任何方式使用EF之前调用此方法。

如果您需要连接EF5或更早版本,请使用EF5 Package,然后按照MiniProfiler.com上的说明进行连接。