MiniProfiler 兼容 Entity Framework 6_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > MiniProfiler 兼容 Entity Framework 6

MiniProfiler 兼容 Entity Framework 6

 2013/11/4 15:35:39  重典  博客园  我要评论(0)
  • 摘要:一直以来都是在用MiniProfiler配合ASP.NETMVC做请求的监控。在某项目升级EntityFramework6之后,在执行查询时报错误:--------------无法将类型为“StackExchange.Profiling.Data.EFProfiledDbConnection”的对象强制转换为类型“System.Data.SqlClient.SqlConnection”。---------
  • 标签:file Framework 兼容

一直以来都是在用MiniProfiler配合ASP.NET MVC做请求的监控。

在某项目升级Entity Framework 6之后,在执行查询时报错误


--------------无法将类型为“StackExchange.Profiling.Data.EFProfiledDbConnection”的对象强制转换为类型“System.Data.SqlClient.SqlConnection”。----------

 

显然是新版本的EntityFramework中增加了EntityFramework.SqlServer所以导致此错误的发生。

暂时MiniProfiler还没有发布新的版本,所以以上问题可以使用以下方法解决

1.下载MiniProfiler的对EF6支持的EFProfiledSqlClientDbProviderServices

下载地址:https://github.com/SamSaffron/MiniProfiler

2.下载后用NuGet将项目的EntityFramework升级至6.0版本,编译后将StackExchange.Profiling.EntityFramework6生成的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
                    );

这时再运行程序,EF6的SQL就可以被MiniProfiler监控到,并且不会报错了。

 

 

引用:

http://www.davepaquette.com/archive/2013/09/01/running-miniprofiler-ef-with-entity-framework-6-rc1.aspx

 


                    
                
发表评论
用户名: 匿名