相关疑难解决方法(0)

LINQ Max扩展方法在空集合上给出错误

我有以下查询:

var maxNumber = dbContext.Where(a => a.Id == 9).Max(a => a.Sample_Num);
Run Code Online (Sandbox Code Playgroud)

如果没有9的Id,我会收到错误.如果没有ID为9,我喜欢将结果默认为0.

我试过了:

var maxNumber = dbContext.Where(a => a.Id == 9).Max(a => a.Sample_Num) ?? 0; 
Run Code Online (Sandbox Code Playgroud)

以及其他变化,但无法使其工作

c# linq

21
推荐指数
2
解决办法
1万
查看次数

C#Entity Framework在不可为空的字段的过滤器之后选择max

我有一个不可空的字段(Num)

class MyTable
{
    //...
    public int Num { get; set; }
    public string Category { get; set; }
    //...
}
Run Code Online (Sandbox Code Playgroud)

想找到最大NumCategory == "A"

var maxnum = myTable
   .Where(r => r.Category == "A")
   .Max(r => r.Num);
Run Code Online (Sandbox Code Playgroud)

当没有任何记录时,问题就出现了category == "A".因为结果Where()为null所以结果Max()将为null但是当Num不可为空时发生异常.

我可以通过Num在表设计中设置为可空来修复它,但我不喜欢这个解决方案,虽然它Num应该有价值,不应该是可空的.

有什么建议吗?有没有办法我接受Num的空值而Num不可为空?或任何更好的查询?

c# entity-framework nullable max where

2
推荐指数
1
解决办法
2041
查看次数

标签 统计

c# ×2

entity-framework ×1

linq ×1

max ×1

nullable ×1

where ×1