我有一個使用mvc-mini-profiler的asp.net項目。我使用的是NuGet版本1.7,我注意到有一個更新的版本爲1.9的軟件包。我更新了包,現在我的代碼不再編譯。失敗編譯的代碼是:迷你探查器從1.7升級到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」不包含「獲取」的定義。
- 名稱'ObjectContextUtils'在當前上下文中不存在。
我注意到我可以創建一個ProfiledDbConnection的實例,並將它傳遞給連接和一個IDbProfiler類型的對象,但我不知道該如何獲得該對象。
關於ObjectContextUtils,我不知道我應該使用什麼線索。
我該如何解決這些問題?
更新:
通過以下@ monkeychatter的建議,我設法建立的代碼。我現在得到以下運行時異常:
空被調用類型「MvcMiniProfiler.Data.ProfiledDbConnection」的存儲提供實例的「get_ProviderFactory」方法後返回。商店提供商可能無法正常運作。
通過檢查ILSpy中的ProfiledDbConnection,我注意到它不再覆蓋DbProviderFactory。這似乎是錯誤的原因,因爲基本實現返回null。有沒有人能夠解決這個問題?
我在ProfiledDbConnection上找不到CreateObjectContext方法。你確定上面的代碼是正確的嗎? –
好點,謝謝。我忘了提到它來自一個附件nuget包MiniProfiler.EF,其中包含程序集MvcMiniProfiler.EntityFramework。回答編輯以反映這一點。 – tonysurma
謝謝,這有幫助。但是,我仍然有問題。我用更多的信息更新了我的問題。 –