#c# #sql-server #entity-framework #azure #sql-server-profiler
#c# #sql-сервер #entity-framework #azure #sql-сервер-профилировщик
Вопрос:
Мы анализируем Azure «Query Performance Insight» для поиска дорогостоящих запросов, проблема в том, что нет способа связать SQL, созданный с запросом Entity Framework.
Есть ли какой-либо метод расширения или что-нибудь еще, чтобы сделать что-то подобное:
Сгенерированный SQL:
-- BlahMethod
SELECT Id
FROM Table1
Entity Framework 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:
Да, посмотрите на эту статью Ведение журнала и перехват операций с базой данных .
Это может быть так же просто, как использовать консоль.Написать:
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);
...
Комментарии:
1. Нет, я хочу войти в сгенерированный sql
2. Это именно то, каким будет журнал. Сгенерированный SQL-запрос, прочитайте ссылку в сообщении.