Что заставит linq to sql думать, что параметр обнуляем? - PullRequest
2 голосов
/ 28 мая 2010

У меня есть хранимая процедура, которая объявляет входной параметр

@BatchNumber uniqueidentifier 

Это поле в таблице установлено, чтобы не допускать обнуления.

Когда я перетаскиваю хранимую процедуру и она перехватывает все, она говорит, что параметр обнуляем.

Я не понимаю почему. Это нормально для него думать, что параметры обнуляются?

1 Ответ

1 голос
/ 28 мая 2010

Все переменные в Sql обнуляются. В sql нет способа сделать ненулевую переменную.

 --yup, it's nullable.  even starts initialized to null.
DECLARE @MyVar int

Если вы измените тип параметра в конструкторе, это должно подойти.

Код отображения может иметь необнуляемое значение и передавать его в базу данных, а база данных будет называть его обнуляемым, и в этом нет проблем. Это происходит с каждым необнуляемым в ваших запросах уже ... например, целыми необнуляемыми идентификаторами в предложениях Where.

Если вы не можете установить желаемый тип в конструкторе ... вот что нужно сделать. Возьмите сгенерированный код для метода и скопируйте его из файла designer.cs в новое частичное определение класса. Установите тип вручную в атрибутах метода. Удалите сохраненный процесс из конструктора (на данный момент сохраненный процесс является ручным дополнением). Нам пришлось использовать этот стиль исправления, чтобы параметры OUTPUT работали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...