如何让MVC-mini-profiler在EF 4.1 Database First上运行

时间:2011-08-27 06:38:20

标签: entity-framework-4.1 mvc-mini-profiler database-first ef-database-first

为了解决这个问题,花了很多时间来梳理SO。这是设置

  • 使用存储库模式的MVC 3应用程序,包含2个数据库中的3个存储库。
  • EF 4.1数据库首先使用DBContext API进行数据库连接。
  • 安装来自nuget的mvc-mini-profiler

这就是我在存储库中创建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>

分析这些连接的后续步骤是什么?慢慢来,因为这是我第一次接触实体框架,所以假设EF连接/上下文细节很少。

1 个答案:

答案 0 :(得分:5)

我重写了拦截代码,因此它更健壮。

  1. nuget MiniProfiler.EF(版本1.9.1)
  2. 在App Init期间运行:MiniProfilerEF.Initialize();