SQL Server Profiler用来跟踪应用程序发送到SQL Server中的SQL语句,用于检测性能,查找问题。Entity Framework 也有它的跟踪工具EFProf,用于跟踪Entity Framework发送到SQL Server中的SQL语句。

首先在代码中添加对程序集HibernatingRhinos.Profiler.Appender的引用,并添加如下方法

HibernatingRhinos.Profiler.Appender.EntityFramework.EntityFrameworkProfiler.Initialize();

再打开EFProf程序,即可看到基于Entity Framework的程序向SQL Server发送的SQL语句

EFProf Entity Framework Profile 工具

 

执行计划 Query Plan

EFProf可以以图形化的方式查看SQL语句的执行计划,而不必去SQL Server中查看执行计划

EFProf Entity Framework Profile 工具

 

查询执行 Query Execute

如果你想知道查询的结果,可以直接在EFProf中打开查询语句,执行查询。这一个特性能查找数据特别有用。

EFProf Entity Framework Profile 工具 

 

获取Entity Framework生成的T-SQL语句

实体框架内建了机制来跟踪它生成的SQL语句,请参考下面的代码

using(var db = new SqlEntities()) 
{ 
        var Q = db.Sql.Select(cc => cc.id); 
        return ((ObjectQuery)Q).ToTraceString(); 
} 
这样可以输入实体框架生成的SQL语句。

 

如何截获Entity Framework的调用

Entity Framework的社区项目EFTraceingProvider,可提供对Entity Framework调用的跟踪。

相关文章:

  • 2021-11-28
  • 2021-06-18
  • 2021-06-17
  • 2021-07-11
  • 2022-02-07
  • 2021-08-07
猜你喜欢
  • 2022-12-23
  • 2021-08-29
  • 2022-02-28
  • 2022-12-23
  • 2022-03-04
  • 2021-11-04
  • 2022-12-23
相关资源
相似解决方案