mvc-mini-profiler を使用する asp.net プロジェクトがあります。NuGet パッケージのバージョン 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」には、「Get」の定義が含まれていません。
- 名前 'ObjectContextUtils' は現在のコンテキストに存在しません。
ProfiledDbConnection のインスタンスを作成し、それに接続と IDbProfiler 型のオブジェクトを渡すことができることに気付きましたが、そのオブジェクトを取得する方法がわかりません。
ObjectContextUtils に関しては、何を使用すればよいかわかりません。
これらの問題を解決するにはどうすればよいですか?
アップデート:
@monkeychatter の推奨に従って、コードを作成することができました。次の実行時例外が発生します。
タイプ 'MvcMiniProfiler.Data.ProfiledDbConnection' のストア プロバイダー インスタンスで 'get_ProviderFactory' メソッドを呼び出した後、null が返されました。ストア プロバイダーが正しく機能していない可能性があります。
ILSpy で ProfiledDbConnection を調べると、DbProviderFactory がオーバーライドされなくなっていることがわかりました。基本実装が null を返すため、それがエラーの原因のようです。この問題を回避できた人はいますか?