C# LINQ中SUM,MAX,MIN时如果数据为空,报错NULL
当使用linq求和sum()时,如果某列数据为null,就会出现异常
使用下面的语句即可解决相关问题:
db.TableModel.Where(w => w.ID == ID).Select(s=>s.SMoney).DefaultIfEmpty(0m).Sum();
当smoney字段可为null,且数据行中存在NULL时,使用以上语句可默认为0,最终使求和正常。
根据条件将筛选字段或数据行取到内存后,在求和
//将数据库数据拿到内存再求和
decimal sum = _member.DbSet.Where(q => q.MemberID == 11)
.Select(q => q.ActiveAmount)
.ToList()
.Sum();
如果根据条件当筛选数据行不存在时,求和结果需要指定为null时,可以这样处理
decimal? sum = _member.DbSet
.Where(q => q.MemberID == 11)
.Sum(q => (decimal?)q.ActiveAmount);
版权声明:本文为YES开发框架网发布内容,转载请附上原文出处连接
post YES开发框架