我有以下查詢:LINQ最大擴展方法給出了空集的錯誤
var maxNumber = dbContext.Where(a => a.Id == 9).Max(a => a.Sample_Num);
如果沒有9身份證,我得到一個錯誤。我喜歡默認的結果爲0,如果沒有的9
標識我想:
var maxNumber = dbContext.Where(a => a.Id == 9).Max(a => a.Sample_Num) ?? 0;
以及其他的變化,但無法得到它的工作
我有以下查詢:LINQ最大擴展方法給出了空集的錯誤
var maxNumber = dbContext.Where(a => a.Id == 9).Max(a => a.Sample_Num);
如果沒有9身份證,我得到一個錯誤。我喜歡默認的結果爲0,如果沒有的9
標識我想:
var maxNumber = dbContext.Where(a => a.Id == 9).Max(a => a.Sample_Num) ?? 0;
以及其他的變化,但無法得到它的工作
你可以使用Any
檢查是否有一個匹配的元素:
int maxNumber = 0;
var id9 = dbContext.Where(a => a.Id == 9);
if(id9.Any())
{
maxNumber = id9.Max(a => a.Sample_Num);
}
或者你可以使用DefaultIfEmpty(defaultValue)
:
int maxNumber = dbContext
.Where(a => a.Id == 9)
.Select(a => a.Sample_Num)
.DefaultIfEmpty(0)
.Max();
我在上面的代碼中看不到任何GroupBy ... :) –