3

我有一個現在使用MvcMiniProfiler的Asp.net Mvc 3應用程序。我還使用實體框架來訪問我的數據庫,並且我想啓用分析器來處理實體模型。到目前爲止,我已經創建了下面的上下文工廠:用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,而不是EntityConnection中的SqlConnection。我現在修改了我的代碼,使其顯示如下:

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