C#. DataContext. ExecuteCommand и ExecuteQuery

Для непосредственного выполнения кода sql в классе DataContext определены методы ExecuteCommand() и ExecuteQuery().

Метод ExecuteCommand() принимает выполняемое sql-выражение и список параметров:

В данном случае удаляется объект по id, который равен 40. Возвращаемое методом число указывает на количество затронутых командой строк.

Метод ExecuteQuery() имеет похожее применение, только в этом случае он возвращает результат выполнения запроса SELECT:

Хранимые процедуры

Допустим, у нас в базе данных определена следующая хранимая процедура:

Данная процедура по переданному имени вычисляет минимальный и максимальный возраст для пользователей с данным именем.

Чтобы облегчить работу с хранимыми процедурами мы можем создать свой подкласс, унаследовав его от DataContext:

Для выполнения хранимой процедуры определяется функция GetAgeRange. И чтобы она сопоставлялась с процедурой к ней применяется атрибут [Function] с указанием имени процедуры.

Функция GetAgeRange принимает ряд параметров. И к каждому параметру принимает атрибут Parameter, который позволяет сопоставить параметр функции с параметром в хранимой процедуре. Так как параметры minAge и maxAge являются выходными, то они определяются с ключевым словом ref.

Применим эту функцию в программе:

Хранимые процедуры в LINQ to SQL

This entry was posted in C#. Bookmark the permalink.