3

私は現在MvcMiniProfilerを使用しているAsp.net Mvc 3アプリケーションを持っています。また、私のデータベースにアクセスするためにEntity Frameworkを使用しています。私は、プロファイラがエンティティモデルを操作できるようにしたいと思います。これまでのところ私は、以下のコンテキストファクトリを作成しました:MvcMiniProfilerでエンティティフレームワークをプロファイリング

internal class ProfiledContextFactory : IContextFactory 
{ 
    public ModelContainer GetContext() 
    { 
     var conn = ProfiledDbConnection.Get(GetConnection()); 
     return ObjectContextUtils.CreateObjectContext<ModelContainer>(conn); 
    } 

    private static EntityConnection GetConnection() 
    { 
     return new EntityConnection(ConfigurationManager.ConnectionStrings["ModelContainer"].ConnectionString); 
    } 
} 

私は仕事の単位を起動したときに、私のリポジトリ層によって呼び出される上記のコードを実行すると、CreateDbCommandDefinitionを呼び出すとき、それはinfiteループ内で立ち往生MvcMiniProfiler.ProfiledDbServicesクラスにあります。

私が間違っていることの手掛かりはありますか?

答えて

3

問題は私のGetConnectionがEntityConnection内のSqlConnectionではなくEntityConnectionを返すことでした。私は今それを読むように私のコードを変更しました:

private static SqlConnection GetConnection() 
{ 
    var connStr = ConfigurationManager.ConnectionStrings["ModelContainer"].ConnectionString; 
    var entityConnStr = new EntityConnectionStringBuilder(connStr); 
    return new SqlConnection(entityConnStr.ProviderConnectionString); 
} 

そしてそれはうまく動作します。

この質問を見て、これを発見しました:Using mvc-mini-profiler with EF 4.0 and Ninject

関連する問題