• 49235
  • 29
  • 13
Нравится блог?
Подписывайтесь!

Самый простой способ увидеть выражение LINQ to SQL в виде классического T-SQL-запроса.

У меня была задача, перевести все выражения LINQ to SQL, в обычный классический язык запросов T-SQL.

На форумах, в основном, предлагали вытаскивать текст запроса, через создание объекта класса IQueryable, а затем обращаться к его свойствам или очень громоздкое решение в виде SQL-профайлера (перехватывать запросы на SQL-сервере).

Оказалось, что в отладчике Visual Studio для этого есть всё необходимое.

Допустим, у нас есть вот такое выражение LINQ to SQL:

var query = from s in context.oxite_Subscriptions
join sa in context.oxite_SubscriptionAnonymous on s.SubscriptionID equals sa.SubscriptionID into outer
from o in outer.DefaultIfEmpty()
join u in context.oxite_Users on s.UserID equals u.UserID
where s.PostID == post.ID
select s;

Запускаем этот код на выполнение в отладчике Visual Studio и добавляем переменную "query" в список контрольных значений. "Прогоняем" переменную, присваивая ей результат LINQ to SQL-выражения. И видим, что в списке контрольных значений, переменная "query" имеет значение...в виде текста запроса на классическом T-SQL:

SELECT [t4].[PostID] AS [ID], [t2].[test], [t2].[SubscriptionID], [t2].[Name], [t2].[Email], [t3].[UserID], [t3].[Username], [t3].[DisplayName], [t3].[Email] AS [Email2], [t3].[HashedEmail], [t3].[Password], [t3].[PasswordSalt], [t3].[DefaultLanguageID], [t3].[Status], [t0].[SubscriptionID] AS [ID2]
FROM [dbo].[oxite_Subscription] AS [t0]
LEFT OUTER JOIN (
SELECT 1 AS [test], [t1].[SubscriptionID], [t1].[Name], [t1].[Email]
FROM [dbo].[oxite_SubscriptionAnonymous] AS [t1]
) AS [t2] ON [t0].[SubscriptionID] = [t2].[SubscriptionID]
INNER JOIN [dbo].[oxite_User] AS [t3] ON [t0].[UserID] = [t3].[UserID]
INNER JOIN [dbo].[oxite_Post] AS [t4] ON [t4].[PostID] = [t0].[PostID]
WHERE [t0].[PostID] = @p0

Конечно, этот T-SQL предназначен для СУБД MS SQL, но доработка до стандартного SQL, уже не представляет большой сложности.

m-r Tarakanoff tarakanoffth
The best C# and .NET days are ahead of us. (25 Mar 2010 by Miguel de Icaza)
3 сентября 2010, 16:57
2503

Загрузка...

Комментарии

Оставьте свой комментарий

Спасибо за открытие блога в Yvision.kz! Чтобы убедиться в отсутствии спама, все комментарии новых пользователей проходят премодерацию. Соблюдение правил нашей блог-платформы ускорит ваш переход в категорию надежных пользователей, не нуждающихся в премодерации. Обязательно прочтите наши правила по указанной ссылке: Правила

Также можно нажать Ctrl+Enter

Популярные посты

Мысли вслух. Почему казахи перестали общаться с родственниками и ходить в гости?

Мысли вслух. Почему казахи перестали общаться с родственниками и ходить в гости?

Дастархан в те времена был скромен. Не было понятия «сынау» - осуждения кто как живет, какой в доме ремонт и т.д. Пока взрослые обсуждали задержку заработной платы, мы играли в армию, жмурки, строили городки...
socium_kzo
5 дек. 2016 / 15:19
  • 22702
  • 28
Верховный Суд презентовал комментарий к Гражданскому процессуальному кодексу

Верховный Суд презентовал комментарий к Гражданскому процессуальному кодексу

ГПК содержит 505 статей, многие из которых написаны несколько сложным юридическим языком. Однако теперь понять их можно проще и без обращения к юристу.
RuSnake
6 дек. 2016 / 10:31
  • 10866
  • 0
Японец о Казахстане: «Ваши девушки уж сильно себе набивают цену...»

Японец о Казахстане: «Ваши девушки уж сильно себе набивают цену...»

"Мужчины должны у вас тут права качать, ибо их процент в вашей численности населения уступает проценту женщин". Я машинально начала уверять, что у нас в стране таковых не имеется...
Sapientia
5 дек. 2016 / 10:52
  • 10252
  • 71
Известный европейский фотограф показал истинную красоту казашек

Известный европейский фотограф показал истинную красоту казашек

С 26 по 30 ноября в Алматы гостил известный европейский фотограф Ян Маклайн в рамках реализации совместного проекта с Казахстаном. Подробности не уточняются, однако ходят слухи о том, что этот...
Muchacho55
7 дек. 2016 / 18:29
  • 7420
  • 8
Распил 1 млрд долларов или спасение для Алматы? В 2017-м начнётся строительство БАКАД

Распил 1 млрд долларов или спасение для Алматы? В 2017-м начнётся строительство БАКАД

Конечно, Алматы заслужил эту дорогу. Невзирая на все издержки, которые могут возникнуть. Заслужил и как крупнейший город Казахстана, и как субъект, формирующий своими налогами около четверти всех...
merurg
7 дек. 2016 / 12:35
  • 7033
  • 19
10 причин, по которым я не смогла работать учителем. Не только в зарплате дело, ребята

10 причин, по которым я не смогла работать учителем. Не только в зарплате дело, ребята

Я почти год проработала в школе, и когда уходила оттуда, была самым счастливым человеком в мире. Тот год, честно говоря, я и сейчас вспоминаю с ужасом.
demonica
6 дек. 2016 / 17:21
  • 5630
  • 78
На самом деле дела плохи: казахстанские школьники на 49-м, а не на 12-м месте по математике

На самом деле дела плохи: казахстанские школьники на 49-м, а не на 12-м месте по математике

О том, как масс-медиа раздула миф о казахстанских вундеркидов в розовый воздушный шар, пока его не проколола правда-иголка. Получается, что казахстанские дети не могут применить теорию в практике...
ardakzhurynov
7 дек. 2016 / 0:17
  • 5109
  • 35
Почему Дональд Трамп назвал Казахстан чудом. Президент подтягивается по географии

Почему Дональд Трамп назвал Казахстан чудом. Президент подтягивается по географии

Трамп и не подозревает, что 16 декабря 1991 Казахстан не создал, а восстановил свою национальную государственность. Иначе бы он упомянул не только 25 лет, а больше чем 550 лет казахской истории.
Stehlikova
2 дек. 2016 / 9:02
  • 5266
  • 88
Молчание врачей. Дети ЮКО, заражённые ВИЧ 10-11 лет назад, узнают о диагнозе-приговоре

Молчание врачей. Дети ЮКО, заражённые ВИЧ 10-11 лет назад, узнают о диагнозе-приговоре

Как сообщают новостные издания, в ближайшее время в Южном Казахстане 102 детям в возрасте 11-12 лет сообщат об их страшном диагнозе. Все эти дети были заражены ВИЧ, причём большинство было инфицировано по вине врачей.
openqazaqstan
2 дек. 2016 / 13:57
  • 4560
  • 4