将非可空类型与null进行比较时出错

时间:2011-08-16 04:57:39

标签: c# nullable

我在这方面遇到了问题:

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

错误指定:

无法将null值分配给System.Int32类型的成员,该类型是不可为空的值类型。

我该如何解决?

更新:

但p.Parent_ObjectiveID是int?数据类型。它可以为空。

2 个答案:

答案 0 :(得分:3)

objectiveID是不可为空的类型。那么检查它的NULL类型是什么意思?您永远不能将空值分配给不可为空的值。可以使用objectiveID吗?代替..

答案 1 :(得分:0)

基本上,p.Parent_ObjectiveID不能是null,(即“非可空”类型)。因此,无需检查它是否为null

因此,要解决此问题,请删除where部分,或将其从null更改为System.Int32值。