Linq中的Sum 2列

时间:2013-10-21 14:38:05

标签: c# asp.net-mvc linq

我想在LINQ中总结两列。以下是我的LINQ语句

var SigmaGood =  from n in db.tbl_dppITHr
                 where n.ProductionHour >= SelectedDateDayShiftStart
                 where n.ProductionHour <= SelectedDateEnd
                 select n.part1 + n.part2

ViewData["GoodTotal"] = SigmaGood.Sum();

我正试图获得part1 + part2的总数;

当我尝试测试结果时,我没有得到任何值,我得到一个空白。

任何想法,我做错了什么?

enter image description here

4 个答案:

答案 0 :(得分:1)

我会说空白必须表示您存储的值与您正在阅读/显示的键不匹配。如果是这样,你至少会看到0,而不是空白。

分两步进行调试。

var total = sigmaGood.Sum();
ViewData["GoodTotal"] = total; //breakpoint on this line and check value of total.

或硬编码测试值,我敢打赌它仍然是空白的:

ViewData["GoodTotal"] = 1234;

答案 1 :(得分:0)

您确定part1part2是否有价值?

var SigmaGood =  from n in db.tbl_dppITHr
                 where n.ProductionHour >= SelectedDateDayShiftStart
                 where n.ProductionHour <= SelectedDateEnd
                 select n.part1 ?? 0 + n.part2 ?? 0

ViewData["GoodTotal"] = SigmaGood.Sum();

答案 2 :(得分:0)

试试这个:

var sum = db.tbl_dppITHr.Where(n => n.ProductionHour >= SelectedDateDayShiftStart
                                    && n.ProductionHour <= SelectedDateEnd)
                        .Sum(n => n.part1 + n.part2);

答案 3 :(得分:0)

您确定输入数据中没有null吗?这可以呈现为SQL SUM(),如果任何输入值为null,它将转到null