私は、次のクエリを持っている:LINQ最大拡張メソッドは空のコレクションにエラーが発生します
var maxNumber = dbContext.Where(a => a.Id == 9).Max(a => a.Sample_Num);
9のIDがない場合、私はエラーを取得します。それはあなたができた
私は、次のクエリを持っている:LINQ最大拡張メソッドは空のコレクションにエラーが発生します
var maxNumber = dbContext.Where(a => a.Id == 9).Max(a => a.Sample_Num);
9のIDがない場合、私はエラーを取得します。それはあなたができた
を仕事に
var maxNumber = dbContext.Where(a => a.Id == 9).Max(a => a.Sample_Num) ?? 0;
だけでなく、他のバリエーションが、取得することができませんでした:私は、私が試した9
のIDが存在しない場合は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();
+1はDefaultIfEmptyを巧みに使っています。 –
合意。 2回目の列挙を強制するので、 'Any()'を使うのは嫌です。 – Paul
^1 Timはスマートでハンサムです。 –
私は上記のコードでGroupByを見ることはできません。:) –