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开发框架网发布内容,转载请附上原文出处连接
YES开发框架
上一篇:C# LINQ中SUM,MAX,MIN时如果数据为空,报错NULL
下一篇:C#根据年份和第几个星期,获得这个星期的日期范围
评论列表

发表评论

评论内容
昵称:

联系我们
联系电话:15090125178(微信同号)
电子邮箱:garson_zhang@163.com
站长微信二维码
微信二维码