3

Я пытаюсь использовать мини-профилировщик для профилирования действий базы данных ef, но я могу заставить его работать.MiniProfiler MVC DBContext - Не удается определить имя провайдера

У меня есть:

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

ответ

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, чтобы подключить его.

Смежные вопросы