のフィルタは、私がNULL可能でないフィールドを持っているところ後(Num
)C#のエンティティフレームワークを選択し、最大ではないNULL可能フィールド
class MyTable
{
//...
public int Num { get; set; }
public string Category { get; set; }
//...
}
は、問題が発生した最大Num
Category == "A"
var maxnum = myTable
.Where(r => r.Category == "A")
.Max(r => r.Num);
のために検索したいときがありますcategory == "A"
の記録はありませんでした。 Where()
の結果はnullであるため、Max()
の結果はnullになりますが、Num
がnullableでない場合、例外が発生しました。
テーブルデザインでNum
をnullableに設定することで修正できますが、Num
には値があり、nullableであってはならないが、この解決法は気に入らない。
提案がありますか? Numがnull値ではない間にNumの値を受け入れる方法はありますか?またはより良いクエリ?
クエリの 'Where(r => r.Category.Equals(" A ")'部分がヌルで、 'Num'がヌル可能でない場合、私はあなたに例外を与えることを期待しますCategory.Equals( "A") 'のような' Num'のレコードはありません?DefaultIfEmpty'を見てください –
[DefaultIfEmpty()](https://msdn.microsoft.com/en-us/library/)を参照してください。 bb360179(v = vs.100).aspx) – sammarcow