![]() |
Модераторы: gambit |
![]() ![]() ![]() |
|
0000 |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 11.7.2006 Где: Нижний Новгород Репутация: нет Всего: 5 |
Здравствуйте.
У меня вопрос по особенностям использования Linq 2 Sql. Когда генерируется SQL-код запроса, существует 2 пути. В первом, когда параметров в запросе нет - генерируется простой запрос типа (Select ... From ты-ды-ды). Если же запрос имеет параметры - он преобразуется в вызов процедуры sp_executesql (поправьте название процедуры, если что - пишу по памяти, могу попутать точное имя) с параметром в виде запроса. что-то типа sp_executesql N'SELECT * FROM ты-ды-ды' и потом перечисляются параметры. В принципе логика зачем это сделано понятно - при изменении параметров текст самого запроса не меняется, поэтому для получения плана запроса SQL машине достаточно только вычислить хэш и взять план запроса не пересчитывая его. Однако вопрос - есть ли принудительный способ заставить LINQ 2 SQL не использовать это процедуру? Ответы типа зачем тебе и так все хорошо - не принимаются. Всем спасибо ![]() |
|||
|
||||
HalkaR |
|
|||
![]() Пуфыстый назгул ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2132 Регистрация: 8.12.2002 Где: В Москве Репутация: нет Всего: 42 |
0000, не могу попробовать, но возможно разница в использование executequery или executecommand?
|
|||
|
||||
0000 |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 11.7.2006 Где: Нижний Новгород Репутация: нет Всего: 5 |
HalkaR,
у самого сейчас возможности попробовать нету, однако ExecuteQuery выполняет просто запрос, который передается стрингой, посему все параметры придется передавать вручную, что не очень удобно. ExecuteCommand же выполняет сиквел команду, которая имеет вполне приятный интерфейс для добавления параметра и определения строки запроса. Единственный вариант, если бы можно было бы из сиквел команды получить полный запрос - не просто текст, но и со всеми параметрами. Надеюсь я понятно описал, а то щас сам прочитал - этот пост ![]() |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | LINQ (Language-Integrated Query) | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |