Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Mvc-Mini-Profiler v1.7 su EF 4.1 Il progetto Code-First non profila SQL

Uso prima EF Code e il mini profiler all'interno del mio costruttore Context creo una nuova factory di connessione e la passo al metodo ProfiledDbConnectionFactory questo restituisce una connessione profilata che puoi quindi impostare come DefaultConnectionFactory del contesto.

public MyConext()
{
    var factory = new ConnectionFactory(); 
    var profiled = new MvcMiniProfiler.Data.ProfiledDbConnectionFactory(factory);
    Database.DefaultConnectionFactory = profiled;
}

La connessione Facotry restituisce solo una nuova connessione sql

public class ConnectionFactory :IDbConnectionFactory
{
     public DbConnection CreateConnection()
     {
         var cnn = new System.Data.SqlClient.SqlConnection(ConfigurationManager.ConnectionStrings["SomeConnection"].ToString());

             return cnn;            
    }

Devi anche aggiungere ProfiledDBProvider al file di configurazione web. Assicurati che il numero di versione sia corretto per te.

<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>

Funziona bene per me sia nei moduli Web MVC che asp.net utilizzando il pacchetto nuget Miniprofiler. Verificherei anche la nuova versione MVC del pacchetto nuget che configura automaticamente la profilazione come parte di un filtro di azione globale.