2016-10-01 90 views
0

我們正在分析Azure的「查詢性能洞察」以查找昂貴的查詢,問題在於,沒有辦法將SQL生成與實體框架查詢關聯起來。實體框架命名查詢

是否有任何擴展方法或別的什麼做這樣的事情:

SQL生成:

-- BlahMethod 
SELECT Id 
FROM Table1 

實體框架CMD:

Context.Table1.Naming("BlahMethod").ToList() 

甚至更​​好:

Context.Table1.ToList() // intercept sql generated by EF and put through reflection the Method and Namespace "MyAssembly.Foo.MyMethodName" 

SQL生成的:

-- MyAssembly.Foo.MyMethodName 
SELECT Id 
FROM Table1 

回答

1

是的,看這篇文章Logging and Intercepting Database Operations

它可以像使用Console.Write簡單:

using (var context = new BlogContext()) 
{ 
    context.Database.Log = Console.Write; 

    // Your code here... 
} 

或者你可以使用一個日誌類:

using (var db = new MyDBContext()) 
      { 

       db.Database.Log = s => Log.TraceVerbose("DB Context:{0}", s); 
... 
+0

不,我要登錄SQL生成 – Alexandre

+0

這是確切什麼日誌會。生成的SQL查詢,請閱讀帖子中的鏈接。 – Marcelo