Как настроить mvc-mini-profiler для работы с DbContext, который передает имя строки подключения в базу? - PullRequest
7 голосов
/ 08 августа 2011

Мой DbContext ctor выглядит так:

public class FnordDbContext : DbContext
{
    public FnordDbContext() : base("Fnord")
    {
    }

    /* stuff */
}

А мой загрузчик mvc-mini-profiler выглядит так:

var sqlConnectionFactory = new SqlConnectionFactory(ConfigurationManager.ConnectionStrings["Fnord"].ConnectionString);
var profiledConnectionFactory = new MvcMiniProfiler.Data.ProfiledDbConnectionFactory(sqlConnectionFactory);
Database.DefaultConnectionFactory = profiledConnectionFactory;

Если я удаляю строку подключения в моем DbContext ctorЯ получаю профилирование, как и ожидалось.Но я не хочу называть мою строку подключения в соответствии с соглашением EF.Что мне нужно изменить, чтобы заставить mvc-mini-profiler работать с моим использованием DbContext?

1 Ответ

6 голосов
/ 08 августа 2011

Вы можете передать ProfiledDbConnection явно в ctor вашего DbContext:

public class MyDbContext : DbContext {
    public MyDbContext()
        : base(GetProfiledConnection()) {
    }

    private static DbConnection GetProfiledConnection() {
        var connectionString = ConfigurationManager.ConnectionStrings["name"].ConnectionString;
        var connection = new SqlConnection(connectionString);
        return ProfiledDbConnection.Get(connection);
    }
}
...