我正在使用此代码:
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 类型的成员,该类型是不可为 null 的值类型。
Parent_ObjectiveID 是一个可以为 null 的 int,并且级别仅是 int。
最佳答案
Max 希望返回一个 int,因为这是 p.Level 的类型,但被迫返回 null(因为查询中没有项目)。如果将 p.Level 转换为可为 null 的 int,则查询应该有效。
var nextLevel = (from p in cd.Objective
where p.Parent_ObjectiveID == null
select (int?)p.Level).Max();
关于c# - 如何修复这个 LINQ 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7081241/