我正在使用此代码:
var nextLevel = (from p in cd.Objective
where p.Parent_ObjectiveID == null
select p.Level);
它起作用,到目前为止它没有返回任何元素(因为我的数据库中没有任何元素)。虽然我想知道顶级做到这一点:
var nextLevel = (from p in cd.Objective
where p.Parent_ObjectiveID == null
select p.Level).Max();
但是我收到了一个错误:
无法将null值分配给System.Int32类型的成员,该类型是不可为空的值类型。
Parent_ObjectiveID是一个可以为空的int和level,只有int。
答案 0 :(得分:4)
Max希望返回一个int,因为这是p.Level的类型,但强制返回null(因为查询中没有项)。如果将p.Level强制转换为可为空的int,则查询应该有效。
var nextLevel = (from p in cd.Objective
where p.Parent_ObjectiveID == null
select (int?)p.Level).Max();