Подтвердить что ты не робот

Профайлер SQL-сервера не отображает запросы LINQ To Sql

Я пытаюсь просмотреть SQL, сгенерированный Linq to SQL в SQL Server Profiler (2005).

Я вижу, что sql отправлен на сервер из чего угодно, кроме linq в sql.

Я уверен, что мне нужно изменить выбор событий для трассы, но не уверен, что еще выбрать.

В настоящее время я выбираю только это: SQL: StmtCompleted - TextData и SPID

Я не хочу использовать регистрацию контекста данных, а не Visualizer Visual Debug SQL. Мне нужно использовать профилировщик.

Почему я не вижу запросы LINQ to SQL?

Спасибо.

ИЗМЕНИТЬ

Я добавил SQL: BatchCompleted, и это не помогло.

EDIT 2

Я добавил событие RPC: Completed, которое находится в категории "Хранимые процедуры" при выборе события. Это сработало!

4b9b3361

Ответ 1

Вам нужен RPC-вызов - запросы выполняются как exec_sql.

Ответ 2

Включите ли вы достаточное количество опций в SQL Profiler для просмотра событий BatchCompleted?

Марк

Ответ 4

Была та же проблема, и ни одно из вышеперечисленных решений не работало для меня.

Что сработало для меня, так это добавить в запрос перечислитель ToList().

До:

var data = null == id ?
                   (from ...
                    select new
                    {
                        ...
                    })
                :
                   (from ..
                    select new
                    {
                        ...
                    });

После:

var data = null == id ?
                   (from ...
                    select new
                    {
                        ...
                    }).ToList()
                :
                   (from ..
                    select new
                    {
                        ...
                    }).ToList();

foreach (var obj in data)
{
   xxx = obj.somename; --> now you can see the sql query in Profiler