Я получил сообщение об ошибке при сравнении ненулевого типа с нулевым - PullRequest
0 голосов
/ 16 августа 2011

У меня проблемы в этой строке:

int? nextLevel = (from p in cd.Objective
                  where p.Parent_ObjectiveID == null
                  select p.ObjectiveID).Max() + 1;

Ошибка указывает:

Нулевое значение нельзя присвоить элементу с типом System.Int32, который является типом значения, не допускающим значения NULL.

Как я могу это исправить?

UPDATE:

Но p.Parent_ObjectiveID - это int? тип данных. Может быть нулевым.

Ответы [ 2 ]

3 голосов
/ 16 августа 2011

Аргумент targetID относится к типу, который нельзя обнулять.Так какой смысл проверять его на NULL-тип?Вы никогда не можете присвоить нулевое значение ненулевому значению.Может быть, использовать targetID?вместо ..

0 голосов
/ 16 августа 2011

По сути, p.Parent_ObjectiveID не может быть null (т. Е. Тип «не обнуляемый»).Таким образом, нет необходимости проверять, является ли это null или нет.

Таким образом, чтобы исправить это, избавьтесь от части where или измените ее с null на System.Int32значение.

...