使用 Entity Framework 5、MiniProfiler 2。为 MiniProfiler.EF 安装 Nuget。
创建连接如下
var conn = new EFProfiledDbConnection(DbConnections.GetSqlConnection(), MiniProfiler.Current);
return new MyDbContext(conn, true);
尝试使用 DbContext 检索数据时,返回以下错误:
Unable to determine the provider name for connection of type
'StackExchange.Profiling.Data.EFProfiledDbConnection'.`
我尝试将以下内容添加到 web.config:
<system.data>
<DbProviderFactories>
<remove invariant="StackExchange.Profiling.Data.ProfiledDbProviderFactory" />
<add name="StackExchange.Profiling.Data.ProfiledDbProviderFactory"
invariant="StackExchange.Profiling.Data.ProfiledDbProviderFactory"
description="StackExchange.Profiling.Data.ProfiledDbProviderFactory"
type="StackExchange.Profiling.Data.ProfiledDbProviderFactory, MiniProfiler, Version=2.0.2.0, Culture=neutral, PublicKeyToken=b44f9351044011a3" />
</DbProviderFactories>
</system.data>
那没有帮助。我也尝试过对此的变体,使用 MiniProfiler.EntityFramework 中的不同 EFProviderFactories,但无法让它们中的任何一个工作。
如果我尝试在 中运行MiniProfilerEF.Initialize();
,App_Start
那么在尝试访问数据库时会出现以下错误:
如果在 Code First 模式下使用,使用用于 Database First 和 Model First 开发的 T4 模板生成的代码可能无法正常工作。要继续使用 Database First 或 Model First,请确保在执行应用程序的配置文件中指定了实体框架连接字符串。要使用从 Database First 或 Model First 生成的这些类,使用 Code First 添加使用属性或 DbModelBuilder API 的任何其他配置,然后删除引发此异常的代码。
DbProviderFactories
从 web.config中删除该部分并运行MiniProfilerEF.Initialize_EF42();
会App_Start
导致原始错误。
正如 MiniProfiler 页面所说,这MiniProfilerEF.Initialize()
仅适用于代码优先,这似乎不是要走的路。
除了将部分添加到 Web.Config 之外,其他搜索没有给我任何其他尝试。关于如何进行的任何建议?目标是能够使用 Mvc MiniProfiler 分析的 Model First DbContext。