entity-framework - 实体框架组总和处理空值
问题描述
我试图从数据库表 CustomerComplaintExpenseRows 返回每月总和。由于我需要每月值,即使它是 0 我必须使用总和查询对月份范围进行分组。在 var q cc.sum 可能在某些月份为 null 并且十进制数据类型将不接受“?? 0” - 操作。如果值为空,如何让我的代码返回 0?
var firstDayOfYear = new DateTime(DateTime.Now.Year, 1, 1);
var lastDayOfYear = new DateTime(DateTime.Now.Year, 12, 31);
var months = Enumerable.Range(1, 12)
.Select(month => month)
.ToList();
var complaints = _context.CustomerComplaintExpenseRows
.Where(a => a.CustomerComplaint.ComplaintDate > firstDayOfYear
&& a.CustomerComplaint.ComplaintDate < lastDayOfYear)
.GroupBy(o => o.CustomerComplaint.ComplaintDate.Month)
.Select(a => new
{
a.Key,
sum = a.Sum(i => i.RowValue)
})
.ToList();
var q = from m in months
join cc in complaints on m equals cc.Key into joined
from cc in joined.DefaultIfEmpty()
select new
{
name = CultureInfo.CreateSpecificCulture("fi-FI")
.DateTimeFormat
.GetAbbreviatedMonthName(m),
value = cc.sum
};
我正在寻找的示例结果:
[
{
"name": 'Jan',
"value": 300,00
},
{
"name": 'Feb',
"value": 0,00
},
{
"name": 'Mar',
"value": 5,30
},
]
解决方案
只是为了完整性
像这样设置值..
value = (cc.sum == null)? 0: cc.sum
推荐阅读
- python - O(log n) 链表搜索算法是否可行?
- c++ - 在 WinRT 中,如何对 png 进行编码,但将其作为内存 bmp 保存在内存中,而不是将其写入文件?
- html - 输入字段超出父 div
- android - 使用 Motion Layout 折叠基于回收器视图或滚动视图移动的自定义视图
- entity - 如何检测输入何时不在实体列表中
- python - Python numba/GPU 装饰器,用于具有矩形矩阵输入和不同矩形矩阵输出的向量化方程
- sas - SAS EG 7.1 的隐藏字符串到日期格式
- javascript - 光滑的滑块不显示第一个元素
- hyperlink - 分页 laravel 8 {{$con->links()}} 不起作用
- javascript - 在鼠标悬停更改图像 8 秒暂停并更改为另一个