Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Mvc-Mini-Profiler v1.7 sur le projet EF 4.1 Code-First ne profile pas SQL

J'utilise d'abord le code EF et le mini profileur dans mon constructeur de contexte. Je crée une nouvelle fabrique de connexions et la transmets à la méthode ProfiledDbConnectionFactory. Cela renvoie une connexion profilée que vous pouvez ensuite définir comme DefaultConnectionFactory du contexte.

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

La connection Facotry retourne juste une nouvelle connection sql

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

             return cnn;            
    }

Vous devez également ajouter le ProfiledDBProvider au fichier de configuration Web. Assurez-vous que le numéro de version est correct pour vous.

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

Cela fonctionne bien pour moi dans les formulaires Web MVC et asp.net en utilisant le package nuget Miniprofiler. Je vérifierais également la nouvelle version MVC du package nuget qui configure automatiquement le profilage dans le cadre d'un filtre d'action global.