c# - 为什么使用 Linq Group By Sum 会出现强制转换错误?

标签 c# linq

我尝试使用 2 个查询来获取减法的结果,然后按总和进行分组。 逻辑看起来不错,但我有以下错误: 无法隐式转换类型 'System.Collection.Generic.List' <> 'to' int '

我的要求:

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();
        }

我想用 Shipping_quantity -reception_quantity 的总和填充 postsList.onTheRoadQ

有什么想法吗?

最佳答案

所有语句都会返回一个列表,最后只需 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()

关于c# - 为什么使用 Linq Group By Sum 会出现强制转换错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57408124/

相关文章:

c# - 与 ElementName 的绑定(bind)不适用于 Windows XP 上的 DataTemplate

c# - 将 Roslyn 与 Nuget 结合使用时避免大量的包和二进制文件

c# - 在 WPF 中进行 DataBound 时将 TextBlock 设置为完全粗体

c# - 从 VB6 DLL 项目调试 C#.Net DLL 项目

.net - 在 Visual Studio 中处理 VB.NET Linq 格式?

c# - Linq running total 第一个值添加到自身

c# - ASP.NET Core 3.0 中发生错误请求错误时显示错误属性

.net - Entity Framework linq - 我应该学习哪个,基于查询的方法?

c# - 使用 LINQ 检查是否订购了 IEnumerable<int> 的最紧凑的方法是什么?

c# - C#的稍微复杂的linq