MiniProfiler互換Entity Framework 6


今までMiniProfilerでASPに合わせていました.NET MVCはリクエストのモニタリングをします.
プロジェクトでEntity Framework 6をアップグレードした後、クエリー・タイムズ・エラーを実行します.
------------------タイプがStackExchange.Profiling.Data.EFProfiledDbConnectionのオブジェクトを強制的にタイプ「System.Data.SqlClient.SqlConnection」に変換できません.-----------
 
明らかに新しいバージョンのEntityFrameworkにEntityFrameworkが追加されました.SqlServerが原因でこのエラーが発生しました.
MiniProfilerはまだ新しいバージョンをリリースしていないので、上記の問題は以下の方法で解決できます.
1.MiniProfilerのEF 6に対応するEFProfiledSqlClientDbProviderServicesをダウンロード
ダウンロードアドレス:https://github.com/SamSaffron/MiniProfiler
2.ダウンロード後にNuGetでプロジェクトのEntityFrameworkを6.0バージョンにアップグレードし、コンパイル後にStackExchange.Profiling.EntityFramework 6で生成したDLLをASPに加える.NET MVCサイトの引用
3.元MiniProfiler初期化コードは
MiniProfilerEF.Initialize();

変更可能
            MiniProfilerEF.Initialize();

            System.Data.Entity.DbConfiguration.Loaded +=

                (sender, e) =>

                e.ReplaceService<System.Data.Entity.Core.Common.DbProviderServices>(

                    (services, o) => EFProfiledSqlClientDbProviderServices.Instance

                    );

このときプログラムを実行すると、EF 6のSQLはMiniProfilerに監視され、エラーは報告されません.
 
 
参照:
http://www.davepaquette.com/archive/2013/09/01/running-miniprofiler-ef-with-entity-framework-6-rc1.aspx