应避免的 LINQ to SQL 聚合投影空值错误

作者:V君 发布于:2016-7-15 11:06 Friday 分类:挖坑经验

根本原因: SQL 在进行 SUM 这类聚合查询时如果一条数据也没有, 会得到 NULL.

如果你的投影结果字段用了不可空类型, 将会引发错误: null 无法赋值到不可空类型.

解决方法: 将聚合投影字段转换成可空, 并将聚合结果做空处理, 一般把空转成0.

 

可能出错的写法:

var result = DataBase.Table.Sum(p=>p.Amount);

 

修改以避免错误:

var result = DataBase.Table.Sum(p=>(decimal?)p.Amount)) ?? 0;

标签: 软件开发 C# 数据库 LINQ 运行时错误

引用地址:

发表评论:

Powered by emlog 去你妹的备案 sitemap