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語句
執行計划 Query Plan
EFProf可以以圖形化的方式查看SQL語句的執行計划,而不必去SQL Server中查看執行計划
查詢執行 Query Execute
如果你想知道查詢的結果,可以直接在EFProf中打開查詢語句,執行查詢。這一個特性能查找數據特別有用。
獲取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調用的跟蹤。