我有一个不可为空的字段(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
应该具有值(value)且不应为空。
有什么建议吗?有没有一种方法可以在 Num 不可为空时接受 Num 的空值?或任何更好的查询?
最佳答案
int maxShoeSize = Workers.Where(x => x.CompanyId == 8)
.Select(x => x.ShoeSize)
.DefaultIfEmpty(0)
.Max();
关于C# Entity Framework 在不可为空字段的过滤器之后选择最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37217741/