2012-05-30 56 views
15

我遇到了此查詢存在的問題,它引發錯誤。由於物化值爲空導致值類型'Decimal'失敗

var TotalToDatePayable = ( from ori in db.GetAll<WMPORI>() 
          where ori.CTMSysID == ctmSysId 
          select ori.ExB4Taxes).Sum(); 

我嘗試下面的代碼從another similar question但這並沒有解決我的問題:

var TotalToDatePayable = (Decimal?)( from ori in db.GetAll<WMPORI>() 
             where ori.CTMSysID == ctmSysId 
            select ori.ExB4Taxes).Sum()) ?? 0; 
+0

這是工作的:var TotalToDatePayable =(從ORI在db.GetAll () 其中ori.CTMSysID == ctmSysId 選擇ori.ExB4Taxes).DefaultIfEmpty(0).SUM(); – Developer

+0

@DmitryBychenko我認爲那種縮進是Objective C的專有。現在我很傷心。 – Rawling

+0

@Rawling 9:這種縮進在SQL中是典型的(Linq在這個問題中模擬的)。這是我添加空格的原因。 –

回答

23

你需要投ori.ExB4Taxesdecimal?查詢裏面。

var TotalToDatePayable = (from ori in db.GetAll<WMPORI>() 
          where ori.CTMSysID == ctmSysId 
          select (Decimal?) ori.ExB4Taxes).Sum() ?? 0; 
+0

您只需要在查詢開頭添加更多的括號,而不是其工作完美。謝謝。 – Developer

相關問題