7

我的 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 一起使用?

4

1 回答 1

6

您可以将 ProfiledDbConnection 显式传递给 DbContext 的 ctor:

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);
    }
}
于 2011-08-08T06:24:22.697 回答