Вопрос

Я пытаюсь заставить MiniproFiler предоставить доступ к моей базе данных, но у меня возникают проблемы. Вся помощь, которую я вижу, представляется для подключений к «кодовому кодуму». Моя модель была разработана до того, как первое обновление кода было доступно в этом году, и я использовал дизайнер для создания модели EDMX. (Я использую это почти год, и, похоже, это работает для меня)

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

Моя модель называется 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. Это не может быть установлено.

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

Это было полезно?

Решение

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

<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, Version=1.7.0.0, Culture=neutral, PublicKeyToken=b44f9351044011a3" />
  </DbProviderFactories>
</system.data>

Другие советы

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

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);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top