我如何修复这个LINQ函数
本文关键字:LINQ 函数 何修复 | 更新日期: 2023-09-27 18:05:40
我使用以下代码:
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();
但是我得到一个错误:
不能将空值赋给System类型的成员。Int32,这是一个非空值类型。
Parent_ObjectiveID是一个可空的整型,并且只在整型中级别。
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();