Eu uso o EF Code primeiro e o mini profiler dentro do meu Context constructor Eu crio uma nova connection factory e passo isso para o método ProfiledDbConnectionFactory que retorna uma conexão com perfil que você pode definir como o DefaultConnectionFactory do contexto.
public MyConext()
{
var factory = new ConnectionFactory();
var profiled = new MvcMiniProfiler.Data.ProfiledDbConnectionFactory(factory);
Database.DefaultConnectionFactory = profiled;
}
A conexão Facotry apenas retorna uma nova conexão sql
public class ConnectionFactory :IDbConnectionFactory
{
public DbConnection CreateConnection()
{
var cnn = new System.Data.SqlClient.SqlConnection(ConfigurationManager.ConnectionStrings["SomeConnection"].ToString());
return cnn;
}
Você também precisa adicionar o ProfiledDBProvider ao arquivo de configuração da web. Verifique se o número da versão está correto para você.
<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>
Isso funciona bem para mim nos formulários da web MVC e asp.net usando o pacote nuget do Miniprofiler. Eu também verificaria a nova versão MVC do pacote nuget que configura automaticamente a criação de perfil como parte de um filtro de ação global.