简体   繁体   English

为什么使用Linq Sum By Sum会给我一个转换错误?

[英]Why does using Linq Group By Sum give me a cast error?

I try using 2 queries to get the result of a subtraction, then a group by sum. 我尝试使用2个查询来获得减法的结果,然后按总和进行分组。 The logic seems good but I have the following error: unable to implicitly convert type 'System.Collection.Generic.List' <> 'to' int ' 逻辑看起来不错,但出现以下错误:无法将类型'System.Collection.Generic.List'隐式转换为'int'

My requests: 我的要求:

var postesList = (from od in db.tbl_607_order_details
                          join o in db.tbl_607_order on od.FK_ID_order equals o.ID
                          where o.order_number == contract
                          select new OrderWizardViewModel
                          {
                              idPoste = od.ID,
                              posteNumber = od.poste_number,
                              contractQ = od.order_quantity,
                              recievedQ = od.recieved_quantity,
                              lifeTime = od.gaz_lifetime,
                              stockMini = od.stock_mini,
                              shippingDelay = od.shipping_delays,
                              onTheRoadQ = 0
                          }).OrderBy(t => t.posteNumber).ToList();

        foreach (var item in postesList)
        {
            item.onTheRoadQ = (from od in db.tbl_607_order_details
                               join srd in db.tbl_607_shipping_request_details on od.ID equals srd.FK_ID_order_details
                               where item.idPoste == srd.FK_ID_order_details & srd.shipping_quantity > srd.reception_quantity
                               select new
                               {
                                   quantity = (srd.shipping_quantity - srd.reception_quantity.Value)
                               }).GroupBy(t => t.quantity).Select(x => new { Sum = x.Sum(y => y.quantity) }).ToList();
        }

I want fill postesList.onTheRoadQ with the sum of shipping_quantity - reception_quantity 我想用shipping_quantity的总和来填充postesList.onTheRoadQ -ception_quantity

Some idea? 有想法吗

All your statement returns a List, Just Sum in the end to summ all the values of the list. 您所有的语句都返回一个列表,最后只求Sum即可累加列表的所有值。

item.onTheRoadQ = (from od in db.tbl_607_order_details
                  join srd in db.tbl_607_shipping_request_details on od.ID equals srd.FK_ID_order_details
                  where item.idPoste == srd.FK_ID_order_details & srd.shipping_quantity > srd.reception_quantity
                  select srd.shipping_quantity - srd.reception_quantity.Value
                  ).Sum()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM