7

私のDbContextctorは次のようになります。

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 に答える