Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Mvc-Mini-Profiler v1.7 auf EF 4.1 Code-First-Projekt erstellt kein SQL-Profil

Ich verwende zuerst EF Code und den Mini-Profiler in meinem Kontextkonstruktor. Ich erstelle eine neue Verbindungsfactory und übergebe diese an die ProfiledDbConnectionFactory-Methode, die eine profilierte Verbindung zurückgibt, die Sie dann als DefaultConnectionFactory des Kontexts festlegen können.

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

Die Verbindungsfacotry gibt nur eine neue SQL-Verbindung

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

             return cnn;            
    }

Sie müssen auch den ProfiledDBProvider zur Webkonfigurationsdatei hinzufügen. Stellen Sie sicher, dass die Versionsnummer für Sie korrekt ist.

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

Dies funktioniert bei mir sowohl in MVC- als auch in asp.net-Webformularen mit dem Miniprofiler-Nuget-Paket. Ich würde mir auch die neue MVC-Version des nuget-Pakets ansehen, das die automatische Profilerstellung als Teil eines globalen Aktionsfilters konfiguriert.