Передача табличных данных в качестве параметра хранимой процедуры или функции (C#)

В предыдущей статье мы рассмотрели работу с параметрами возвращающими табличное значение в MS SQL Server. Но, как использовать преимущество таких параметров в клиентском приложении?

На самом деле, ответ на это вопрос во многом зависит от платформы, на которой приложение разрабатывается. В данной статье мы рассмотрим работу передачу табличных данных в качестве параметра хранимой процедуры или функции в C#.

В ходе рассмотрения мы будем использовать табличный тип данных и функцию описанные в статье по ссылке. Поэтому настоятельно рекомендуется вначале ознакомиться с данной статьёй, чтобы лучше понимать, о чём идёт речь.

В C# табличные наборы данных можно передать MS SQL Server в виде объекта DataTable, который по своей структуре соответствует требуемому табличному типу данных. Сформируем таблицу с необходимой структурой и заполним её данными.

Теперь передадим эту таблицу в качестве параметра функции. Так как мы передаём данные табличного типа определённого пользователем требуется обязательно указать имя типа данных в свойстве TypeName.

После этого можно выполнить функцию и получить её значение. Ниже приведён примернвй полный код для данной операции.

В случае хранимых процедур работа с параметрами возвращающими табличное значение строится аналогичным образом.

К сожалению стандартные ORM библиотеки от Microsoft (LinqToSQL, Entity Framework) имеют, в лучшем случае, ограниченную поддержку пользовательских табличных типов. Поэтому при работе с ними требуется выполнение прямого SQL запроса.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *