3

ServiceStackには、すばらしいMiniProfilerが組み込まれています。ただし、これは別のバージョンであり、独自の名前空間でServiceStackにコンパイルされています。

プロファイラーは通常のADO.NET接続で動作しますが、EntityFramework4.2データコンテキストで動作させるのに苦労しています。

通常、MiniProfiler.EF NuGetパッケージを使用しますが、公式のMiniProfilerバージョンに対して構築されているため、機能しません。

どちらかの最も簡単な方法は何ですか:

  • ServiceStackのMiniProfilerを公式バージョンに交換します(SSは一部のハンドラーの奥深くでプロファイラーのJavaScriptを生成するため、これを調査しましたが、簡単ではないようです)?
  • または、組み込みのプロファイラーをServiceStack AND Entity Frameworkで機能させるのですか?
4

2 に答える 2

4

それで、これについて良い答えが得られなかったので、ServiceStackに対して実行するためにMiniProfiler.EFを移植する方法を決めました。幸いなことに、これはそれほどの努力ではありませんでした。

結果はここにあります:https ://github.com/driis/ServiceStack.MiniProfiler.EntityFramework

これは、MiniProfiler.EFにあるものとまったく同じコードですが、名前空間を調整し、コンパイルするためにいくつかのエラーを修正しただけです。使用するには、(MiniProfiler.EFパッケージの代わりに)プロジェクトにアセンブリを配置MiniProfilerEF.Initialize_EF42()し、スタートアップコードを呼び出すだけです。これですべて完了です。

時間があれば、おそらくServiceStack.Contribに対してプルリクエストを作成しようとします。そのため、おそらく独自のNuGetパッケージを使用して、そこに含めることができます。

于 2012-10-24T16:59:29.260 に答える
1

あなたの例に従って、MiniProfiler.EF6を移植しました。結果はGitHubで共有され、NuGetパッケージがアップロードされました。

于 2014-06-28T08:28:16.363 に答える