MiniProfiler互換Entity Framework 6
1641 ワード
今まで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初期化コードは
変更可能
このときプログラムを実行すると、EF 6のSQLはMiniProfilerに監視され、エラーは報告されません.
参照:
http://www.davepaquette.com/archive/2013/09/01/running-miniprofiler-ef-with-entity-framework-6-rc1.aspx
プロジェクトで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