sql >> Base de Datos >  >> RDS >> Sqlserver

Mvc-Mini-Profiler v1.7 en el proyecto EF 4.1 Code-First no perfila SQL

Primero uso el código EF y el mini generador de perfiles dentro de mi constructor de contexto. Creo una nueva fábrica de conexiones y la paso al método ProfiledDbConnectionFactory. Esto devuelve una conexión perfilada que luego puede establecer como DefaultConnectionFactory del contexto.

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

La conexión Facotry simplemente devuelve una nueva conexión sql

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

             return cnn;            
    }

También debe agregar ProfiledDBProvider al archivo de configuración web. Asegúrese de que el número de versión sea correcto para usted.

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

Esto funciona bien para mí en formularios web MVC y asp.net usando el paquete nuget Miniprofiler. También revisaría la nueva versión MVC del paquete nuget que configura automáticamente la creación de perfiles como parte de un filtro de acción global.