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調用的跟蹤。