Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Mvc-Mini-Profiler v1.7 no projeto EF 4.1 Code-First não perfila SQL


Eu uso o EF Code primeiro e o mini profiler dentro do meu Context constructor Eu crio uma nova connection factory e passo isso para o método ProfiledDbConnectionFactory que retorna uma conexão com perfil que você pode definir como o DefaultConnectionFactory do contexto.
public MyConext()
{
    var factory = new ConnectionFactory(); 
    var profiled = new MvcMiniProfiler.Data.ProfiledDbConnectionFactory(factory);
    Database.DefaultConnectionFactory = profiled;
}

A conexão Facotry apenas retorna uma nova conexão sql
public class ConnectionFactory :IDbConnectionFactory
{
     public DbConnection CreateConnection()
     {
         var cnn = new System.Data.SqlClient.SqlConnection(ConfigurationManager.ConnectionStrings["SomeConnection"].ToString());

             return cnn;            
    }

Você também precisa adicionar o ProfiledDBProvider ao arquivo de configuração da web. Verifique se o número da versão está correto para você.
<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>

Isso funciona bem para mim nos formulários da web MVC e asp.net usando o pacote nuget do Miniprofiler. Eu também verificaria a nova versão MVC do pacote nuget que configura automaticamente a criação de perfil como parte de um filtro de ação global.