【发布时间】:2013-10-24 18:27:56
【问题描述】:
我正在运行以下查询,但它失败并出现异常:
转换为值类型“Int32”失败,因为具体化值为 null。
var myvalue = conn.Employees.Where(r => r.LastName == LastName).Max(r1 => r1.Id);
有没有办法在一行代码中获取 Max() 并考虑空值?
【问题讨论】:
-
属性
Id是Nullable<int>吗? -
@Jehof 如果不是这样,那将毫无意义。应该是 0。
-
@gleng 你怎么知道的?他的问题不清楚,对我来说,缺少给出有效答案的信息。
-
我已经更新了我的答案@4thSpace。看看吧。
-
1) 这是 LINQ-to-objects 吗?或者其他一些 LINQ 的味道? 2)您确定问题出在您的查询中吗?如果这是基于
IQueryable的 LINQ 风格之一,则问题可能是由您的类与数据库不匹配引起的。例如,数据库可能包含null,但Id是不可为空的属性。