2009-12-17 4 views
1

При входе LINQ-to-SQL для вывода запроса через Log собственности на объект DataContext, вы получите результат, похожий на:Выполнение вывода отладки LINQ-to-SQL?

SELECT [t0].[fullaname], [t0].[Worker], [t0].[Office] 
FROM [dbo].[Workers] AS [t0] 
WHERE [t0].[OfficeID] = @p0 
ORDER BY [t0].[Name] 
-- @p0: Input Int (Size = 0; Prec = 0; Scale = 0) [412] 
-- Context: SqlProvider(Sql2005) Model: AttributedMetaModel Build: 3.5.30729.1 

В этом примере, я просто отходили некоторую информацию о каждом Worker в Офис с ID = 412. Однако этот вывод не выполняется непосредственно в окне SQL Management Studio Query из-за формата комментариев , который выводит LINQ.

Кто-нибудь знает, есть ли хранимая процедура, которая принимает этот формат, чтобы я мог его выполнить? Я посмотрел на обработанный запрос procs, но, возможно, я просто не вижу его. Если процедуры нет, я собираюсь написать парсер, который превратит этот формат в «нормальный» SQL ...

Спасибо!

Примечание:

Я знаю, что я мог бы просто определить @p0 в верхней части этого, как показано на Help with SQL/LINQ Debugging, но - много таких запросов, которые я имею принять как 20 параметров, поэтому она становится много работа копирования и вставки ....

ответ

1

Невозможно напрямую выполнить то, что у вас было выше, без ручного (или программно с помощью какого-то синтаксического анализа), вставляющего значение параметров.

Если вы используете sql-профайлер, вы получите исполняемый динамический SQL-код, это гораздо лучший подход, но я понимаю, что это не всегда возможно.

+0

Да, я думаю, я всегда мог включить профилировщик ... хотя приятно иметь возможность захватить его прямо из среды вашего dev, используя DebuggerWriter, например: http://www.u2u.info/Blogs/Kris /Lists/Posts/Post.aspx?ID=11 –

+0

В итоге я написал парсер Regex, который выполняет поиск и замену на нужные значения. Приятно быть в состоянии легко выполнить его сейчас! –

Смежные вопросы