MiniProfiler с EF "модель сначала" модель edmx - PullRequest
11 голосов
/ 23 июля 2011

Я пытаюсь заставить MiniProfiler профилировать доступ к моей базе данных, но у меня возникают проблемы. Кажется, что вся помощь, которую я вижу, оказывается для соединений кода "сначала". Моя модель была разработана до того, как в этом году появилось первое обновление кода, и я использовал конструктор для создания модели edmx. (Я использую это почти год, и, похоже, у меня работает)

Пример на сайте документации MiniProfiler не имеет смысла для меня. Я попробовал несколько вариантов, но у меня проблемы.

Моя модель называется CYEntities, обычно для создания экземпляра ObjectContext я просто делаю это var context = new CYEntities() вот что я пробовал для профилировщика ...

var dbConnection = new CYEntities().Connection;
var profiledConnection = ProfiledDbConnection.Get(dbConnection);
var context = profiledConnection.CreateObjectContext<CYEntities>(); // this is the context I'd finally use to access data. 

Это вызывает исключение ...

System.ArgumentException: не удалось найти запрошенный поставщик данных .Net Framework. Возможно, он не установлен.

Я не уверен, куда идти отсюда.

Ответы [ 2 ]

11 голосов
/ 24 июля 2011

Попробуй так:

var connectionString = ConfigurationManager
    .ConnectionStrings["MyConnectionString"]
    .ConnectionString;
var ecsb = new EntityConnectionStringBuilder(connectionString);
var sqlConn = new SqlConnection(ecsb.ProviderConnectionString);
var pConn = ProfiledDbConnection.Get(sqlConn, MiniProfiler.Current);
var context = ObjectContextUtils.CreateObjectContext<CYEntities>(pConn);
7 голосов
/ 25 июля 2011

У меня та же проблема.Похоже, что вы должны добавить следующее в ваш файл web.config, однако для меня это вызывает сбой процесса w3wp.exe (и веб-сервер в Visual Studio для локальных запросов).Это не похоже на то, что происходит с кем-то еще, так что это может сработать для вас (обязательно вставьте актуальную версию профилировщика, которую вы используете).

...