最近在做一个统计的功能,根据数据表数据筛选到缓存后,依据模型进行计算处理,最终显示百分比结果。
可是,代码编写完成后,页面显示的结果始终无法和数据库操作一致:
页面显示内容
明明是 11 个,可是代码计算的总和是 12个。
分析代码后,将Linq 操作改为foreach 循环,
同时将 ID输出,结果:
里面有重复的数据,之前在做相似项目的时候,一般都是从数据筛选前先去重,然后再处理,方式有些繁琐,索性使用 Linq自带的东西咯 。
加入GroupBy 后,将同样实现去重,当然个人不习惯使用 Distinct。
然后通过修改 SQL 语句进行验证:
果然,ID为 309 的出现了两条。
其实准确的做法是应该在数据入口前,进行判断,但有时候无法通过直接的方式去控制(是别人直接导入或 客户提供的数据 )
这时候就要通过其他方式找到问题所在。
先记录下来,以便日后翻阅。
如果读者看后觉得太弱,请默默走开,拒绝吐槽,谢绝拍砖...