Как заставить MVC-мини-профилировщик работать на EF 4.1 Database First - PullRequest
2 голосов
/ 27 августа 2011

Лучшую часть дня провел, прочесывая SO для этого.Вот настройка

  • Приложение MVC 3 с использованием шаблона репозитория с 3 репозиториями на 2 базы данных.
  • EF 4.1 База данных сначала использует DBContext API для обоих соединений дБ.
  • Установлен mvc-mini-profiler из nuget

Так я создаю свой Db Context в хранилище

public class TransactionRepository : BaseRepository, ITransactionRepository
{
    AccountingEntities _db = new AccountingEntities();

    // repository methods
}

Затем в контроллерах

public class InvoiceController : BaseController
{
    private ITransactionRepository _txnRepository;

    public InvoiceController()
    {
        _txnRepository = new TransactionRepository();
    }

    public InvoiceController(ITransactionRepository t)
    {
        _txnRepository = t;
    }
}

Наконец, я добавил в web.config

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

Каковы дальнейшие шаги для профилирования этих соединений?Пройдите мимо меня медленно, так как это мое первое знакомство с Entity Framework, так что давайте немного рассмотрим детали подключения / контекста EF.

1 Ответ

5 голосов
/ 29 августа 2011

Я переписал код перехвата, чтобы он стал более надежным.

  1. nuget MiniProfiler.EF (версия 1.9.1)
  2. Во время запуска приложения: MiniProfilerEF.Initialize();
...