Вопрос
В настоящее время я пытаюсь использовать простой класс C# для всех хранимых процедур в базе данных. Для этого я использую Codesmith и, в частности, SchemaExplorer.
Итерация через параметры для хранимой процедуры, я заметил Parameterschema.allowdbnull и подумал, для чего это. Насколько мне известно, невозможно объявить параметр как не нулевой, и поэтому нулевой всегда разрешается передавать в любой параметр.
Благодаря тестированию, похоже, что Allugledbnull всегда верна (или, по крайней мере, я не смог написать процедуру, которая приводит к False). Итак, это заставляет меня спросить, для чего это?
Я нашел этот пост с форумов Codesmith с 2003 года:http://community.codesmithtools.com/support_forums/f/3/t/264.aspx
Они говорят, что «исправят» это в следующем выпуске, что заставляет меня думать, что я не знаю или не понимаю об этом свойстве.
Спасибо, что посмотрели.
Решение
Я работаю на инструменты Codesmith и обновил Форум пост от вашего вопроса. Я консультировался с Эриком по поводу этой проблемы, и мы решили, что это дизайн, потому что вы всегда можете перенести нуль в параметр хранимой процедуры. В рамках вашего вопроса это свойство, которое определяется в базовом классе и позволяет обнаружить другие объекты схемы (например, ColumnSchema), если объект является нулевым.
А Шаблоны CommandWrapper будет генерировать сильно напечатанный класс из существующей хранимой процедуры или функции. У вас была возможность взглянуть на это?