3

我有一个 Asp.net Mvc 3 应用程序,它现在正在使用 MvcMiniProfiler。我还使用实体框架来访问我的数据库,并且我想让探查器能够使用实体模型。到目前为止,我已经在下面创建了 Context 工厂:

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);
    }
}

当我运行上面的代码时,当我启动一个工作单元时,它由我的存储库层调用,当我在 MvcMiniProfiler.ProfiledDbServices 类中调用 CreateDbCommandDefinition 时,它会陷入无限循环。

任何线索我做错了什么?

4

1 回答 1

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

于 2011-06-27T11:06:08.917 回答