linq在求和(sum)時發生異常


  在使用linq的時候,我們總會用到sum() 求和方法。

 比如: 

    

//db 是數據庫上下文
// 求table表中名字=xxx的付款金額
decimal total = db.Tables.Where(a=>a.Name=="xxx").Sum(a=>a.Payment);

 

 這時候,如果數據庫中沒有這個人的記錄,則會報出異常 invalidoperationexception:不能將 Null 值賦給類型為 System.Decimal (不可為 null 的值類型)的成員。

 

產生原因是,數據庫查詢得到的結果是null,無法將null 賦值給Decima 類型的變量 totla.

 解決方法是:

  

decimal total = db.Tables.Where(a=>a.Name=="xxx").ToList().Sum(a=>a.Payment);

   先ToList(),再求和。因為在tolist的時候 會把null 轉化為0,所以最后total=0.

 

  學習學習...


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM