【发布时间】:2016-05-13 19:16:57
【问题描述】:
我有一个不可为空的字段 (Num)
class MyTable
{
//...
public int Num { get; set; }
public string Category { get; set; }
//...
}
想为Category == "A"找到最大的Num
var maxnum = myTable
.Where(r => r.Category == "A")
.Max(r => r.Num);
当没有category == "A" 的任何记录时出现问题。因为Where() 的结果为空,所以Max() 的结果将为空,但当Num 不可为空时,就会发生异常。
我可以通过在表格设计中将Num 设置为可为空来修复它,但我不喜欢这种解决方案,而Num 应该具有价值且不应为空。
有什么建议吗?有没有办法在 Num 不可为空时接受 Num 的空值?或任何更好的查询?
【问题讨论】:
-
因此,如果查询的
Where.(r => r.Category.Equals("A")部分为空,并且Num不可为空,我希望它会给您一个例外,因为没有Num的记录,其中@ 987654336@?所以看看DefaultIfEmpty
标签: c# entity-framework max where nullable