我如何修复这个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是一个可空的整型,并且只在整型中级别。

我如何修复这个LINQ函数

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();