Ik gebruik eerst EF-code en de miniprofiler binnen mijn Context-constructor. Ik maak een nieuwe verbindingsfabriek en geef deze door aan de ProfiledDbConnectionFactory-methode. Dit retourneert een geprofileerde verbinding die u vervolgens kunt instellen als de DefaultConnectionFactory van de context.
public MyConext()
{
var factory = new ConnectionFactory();
var profiled = new MvcMiniProfiler.Data.ProfiledDbConnectionFactory(factory);
Database.DefaultConnectionFactory = profiled;
}
De verbinding Facotry retourneert gewoon een nieuwe sql-verbinding
public class ConnectionFactory :IDbConnectionFactory
{
public DbConnection CreateConnection()
{
var cnn = new System.Data.SqlClient.SqlConnection(ConfigurationManager.ConnectionStrings["SomeConnection"].ToString());
return cnn;
}
U moet ook de ProfiledDBProvider toevoegen aan het webconfiguratiebestand. Zorg ervoor dat het versienummer voor u correct is.
<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>
Dit werkt prima voor mij in zowel MVC- als asp.net-webformulieren met behulp van het Miniprofiler-nugetpakket. Ik zou ook eens kijken naar de nieuwe MVC-versie van het nuget-pakket dat profielen automatisch configureert als onderdeel van een globaal actiefilter.