Запросы на имена Entity Framework

Мы анализируем Azure «Query Performance Insight» для поиска дорогостоящих запросов, проблема в том, что нет способа связать сгенерированный SQL запрос с запросом Entity Framework.

Есть ли какой-либо метод расширения или что-то еще, чтобы сделать что-то вроде этого:

Сгенерированный SQL:

-- BlahMethod
SELECT Id
FROM Table1

Командная строка Entity Framework:

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

person Alexandre    schedule 01.10.2016    source источник


Ответы (1)


Да, посмотрите эту статью Журналирование и перехват операций базы данных.

Это может быть так же просто, как использовать 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);
...
person Marcelo    schedule 01.10.2016
comment
Нет, я хочу войти в систему, созданную sql - person Alexandre; 01.10.2016
comment
Это именно то, что журнал будет. Сгенерированный SQL-запрос, читайте ссылку в посте. - person Marcelo; 01.10.2016