2017-08-30 34 views
0

我有一個簡單的LINQ從表中獲取最大價值LINQ的最大:演員到價值型「System.Decimal」失敗,因爲物化值爲null

decimal? taskId = dbContext.My_Tasks.Max(m=> m.TaskId) 

它正常工作時,表中有至少一個記錄,但是當表是空的,它返回演員陣容價值型「System.Decimal」失敗,因爲物化值爲null

現在的問題是:如何在表檢查只是一個Linq的有記錄返回最大ID?

+0

如果沒有記錄,我需要1的結果 –

回答

2

你或許可以使用DefaultIfEmpty,在你的情況下,值爲1。喜歡的東西:

dbContext.My_Tasks.Select(m => m.TaskId).DefaultIfEmpty(1).Max()

這將產生一個集合爲1的值,如果沒有工作,與1 Max是,好了,1

1

其轉換爲decimal?max()之前荷蘭國際集團它:

decimal? taskId = dbContext.My_Tasks 
    .Cast<int?>() 
    .Max(); 
相關問題