在使用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.

 

  学习学习...

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-07
  • 2021-09-16
猜你喜欢
  • 2022-12-23
  • 2022-02-16
  • 2021-10-12
  • 2022-12-23
  • 2021-08-11
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案