Выполнение отладочного вывода LINQ-to-SQL? - PullRequest
1 голос
/ 17 декабря 2009

Когда вы регистрируете вывод запроса LINQ-to-SQL через свойство Log объекта DataContext, вы получаете вывод, подобный следующему:

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 в Office с ID = 412. Однако этот вывод не выполняется непосредственно в окне запроса SQL Management Studio из-за формата комментария @p0, который выводит LINQ.

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

Спасибо!

Примечание:

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

1 Ответ

1 голос
/ 17 декабря 2009

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

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

...