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ückpublic 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.