Как я могу обработать столбец NULLable Int, возвращенный из хранимой процедуры в LINQ to SQL - PullRequest
7 голосов
/ 05 января 2009

У меня есть хранимая процедура, которая возвращает два значения типа int. Первое не может быть нулевым, но второе может возвращать нулевое значение. Когда я пытаюсь выполнить мою хранимую процедуру, используя LINQ to SQL, она завершается ошибкой с оператором:

Нулевое значение не может быть назначено члену с типом System.Int32, который является необнуляемым типом значения.

Я попытался изменить свой файл конструктора в моем DBML и добавить: CanBeNull= true к отображению столбца результата хранимых процедур.

Я, кажется, могу найти правильный способ справиться с этим, не уверен, смогу ли я изменить свой код LINQ / C # для учета нулевого значения (что было бы предпочтительнее) или мне придется обновить свою хранимую процедуру в некотором роде.

Ответы [ 3 ]

8 голосов
/ 05 января 2009

Вы должны объявить переменную как обнуляемую. В конструкторе щелкните свойство в вашей модели, которое должно быть обнуляемым, а затем в окне Свойства установите для свойства «Обнуляемое» значение True . Это скажет генератору создать вашу собственность как Nullable<int> or int?

2 голосов
/ 05 января 2009

Попробуйте объявить переменные int как обнуляемые. То есть

int? myInt;

Таким образом, вы можете проверить их на ноль.

0 голосов
/ 27 июля 2011

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

Надеюсь, это поможет некоторым другим пользователям.

Спасибо.

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