Мы используем SQL Server для нашей базы данных и иногда хотим передать табличные параметры хранимым процедурам.
Наш текущий метод для этого включает (C#):
// datatable is System.Data.DataTable
// command is System.Data.Common.DbCommand
var parameter = new SqlParameter("@Name", datatable);
parameter.SqlDbType = SqlDbType.Structured;
command.Paramaters.Add(parameter);
Если хранимая процедура имеет параметр @Name
типа dbo.IdList
, который определяется следующим образом
CREATE TYPE [dbo].[IdList] AS TABLE(
[Id] [int] NULL
)
это все работает нормально. Однако я не могу использовать это с MiniProfiler - я получаю следующее исключение:
Невозможно привести объект типа «StackExchange.Profiling.Data.ProfiledDbConnection» к типу «System.Data.SqlClient.SqlConnection».
Есть ли другой способ определить и передать табличные параметры хранимым процедурам?
(Примечание: как и в примере выше, мы иногда передаем параметры, где каждая строка представляет собой пару целых чисел)