的過濾器我有一個不能爲空場(Num
)C#實體框架選擇最大哪裏不能爲空場
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()
的結果爲空,所以Max()
的結果將爲空,但當Num
不可爲空時,發生異常。
我可以通過在表設計中將Num
設置爲可以修復它,但我不喜歡這個解決方案,而Num
應該有價值,不應該爲空。
有什麼建議嗎?有沒有一種方法可以讓Num接受空值,而Num不可空?或更好的查詢?
因此,如果查詢的where部分(r => r.Category.Equals(「A」)'部分爲null,'Num'不可爲空,我希望它會給你一個異常,因爲沒有'Num'的記錄,其中'Category.Equals(「A」)''查看'DefaultIfEmpty' –
參見[DefaultIfEmpty()](https://msdn.microsoft.com/zh-cn/library/ bb360179(v = vs.100).aspx) – sammarcow