MVC Mini Profiler с Entity Framework: как получить соединение

Я хотел бы использовать MVC Mini Profiler для подключения к Entity Framework. Я сделал это так:

public static XXXXX.DAL.BO.XXXXXEntities GetEntityConnection()
    {
        var conn = ProfiledDbConnection.Get(new EntityConnection(ConfigurationManager.ConnectionStrings["XXXXXEntities"].ConnectionString));
        return ObjectContextUtils.CreateObjectContext<XXXXX.DAL.BO.XXXXXEntities>(conn);
    }

Итак, следующая строка предназначена для получения контекста для остальной части кода:

XXXXX.DAL.BO.XXXXXEntities ctx = GetEntityConnection();

Однако, когда я попытался просмотреть этот сайт в браузере, произошел сбой WebDev.WebServer40.exe.

Кто-нибудь знает, почему?

Большое спасибо.

P.S. Раньше это было

XXXXX.DAL.BO.XXXXXEntities ctx = new XXXXX.DAL.BO.XXXXXEntities();

и все работало нормально.


person Freddie Sunarso    schedule 20.07.2011    source источник


Ответы (2)


Если вы можете использовать nuget v3.0.10 для EF6, то все, что вам нужно сделать для подключения Entity Framework, - это

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

При использовании EF 5 или более ранней версии (с соответствующим пакетом nuget) вам потребуется создать EFProfiledDbConnection, как написал Анируд в своем ответе:

var conn =  new EFProfiledDbConnection(GetConnection(), MiniProfiler.Current);
return ObjectContextUtils.CreateObjectContext<MyModel>(conn);
person Yaakov Ellis    schedule 07.05.2014
comment
Откуда взялся GetConnection() метод? - person Mahmoud Ali; 14.08.2015

попробуйте инициализировать ваше соединение с:

connection = new EFProfiledDbConnection( new EntityConnection(ConfigurationManager.ConnectionStrings["XXXXXEntities"].ConnectionString),
                        MiniProfiler.Current);

работает для меня.

person Anirudh    schedule 17.12.2013