Привязка пустого списка или нулевого значения к табличному параметру в хранимой процедуре (.net)

Я создал хранимую процедуру, которая принимает табличный параметр, который представляет собой таблицу с одним столбцом типа int. Идея состоит в том, чтобы просто передать список идентификаторов в процедуру хранилища и позволить sp работать с данными. Однако в случае, когда нет данных для передачи, я сталкиваюсь с проблемами (все работает правильно, когда у меня есть данные). Я преобразую список в IEnumerable и связываю его с табличным параметром для sp. Я попытался связать пустой список, что привело к ошибке

System.ArgumentException: в перечислении SqlDataRecord нет записей. Чтобы отправить табличный параметр без строк, используйте вместо него нулевую ссылку.

Затем я попытался связать нулевое значение (что, как мне показалось, было тем, к чему стремилось указанное выше сообщение), но это привело только к другое сообщение об ошибке

System.NotSupportedException: значение DBNull для параметра '@MainItemIdList' не поддерживается. Табличными параметрами не может быть DBNull.

Не представляется, что табличный параметр можно объявить как обнуляемый в объявлении sp. Как правильно связать пустой список с табличным параметром?

59
задан Jason Down 2 September 2010 в 21:22
поделиться