我有一个使用 mvc-mini-profiler 的 asp.net 项目。我使用的是 1.7 版的 NuGet 包,我注意到有一个更新的包,其版本是 1.9。我更新了包,现在我的代码不再编译。编译失败的代码是:
public static T GetProfiledContext<T>() where T : System.Data.Objects.ObjectContext
{
var conn = GetStoreConnection<T>();
if (_enableProfiling)
{
conn = ProfiledDbConnection.Get(conn);
}
return ObjectContextUtils.CreateObjectContext<T>(conn);
}
编译错误报告以下问题:
- “MvcMiniProfiler.Data.ProfiledDbConnection”不包含“Get”的定义。
- 当前上下文中不存在名称“ObjectContextUtils”。
我注意到我可以创建一个 ProfiledDbConnection 实例并将连接和一个 IDbProfiler 类型的对象传递给它,但我不确定应该如何获取该对象。
关于 ObjectContextUtils,我不知道应该使用什么。
我该如何解决这些问题?
更新:
通过遵循@monkeychatter 的建议,我设法构建了代码。我现在得到以下运行时异常:
在“MvcMiniProfiler.Data.ProfiledDbConnection”类型的商店提供程序实例上调用“get_ProviderFactory”方法后返回 null。商店提供程序可能无法正常运行。
通过检查 ILSpy 中的 ProfiledDbConnection,我注意到它不再覆盖 DbProviderFactory。这似乎是错误的原因,因为基本实现返回 null。有没有人能够解决这个问题?