今天碰到一个问题
var totalAmount = _context.UsersMonthCharges.Where(p=>p.UserName == UserName).Sum(data => data.Amount);
Amount 为decimal类型
当查询的 UsersMonthCharges 不存在这个用户的时候
会抛出 不能将 Null 值赋给类型为 System.Decimal (不可为 null 的值类型)的成员。
这个异常,解决方法,搜索了下google,没找到答案
自己开动脑筋....
猜测他的推断数据结果类型是根据 data => data.Amount 这个Amount来获取,尝试取巧方法:
var totalAmount = _context.UsersMonthCharges.Where(p=>p.UserName == UserName).Sum(data => (decimal?)data.Amount);
发现 鼠标放在Sum函数上,哈,果然不出所料,结果类型已经被推断为 decimal?
重新编译执行,的确已经解决这个问题,结果为 null
简单搞定这个问题