【问题标题】:How to convert SQL to Linq with SUM calculation如何使用 SUM 计算将 SQL 转换为 Linq
【发布时间】:2020-04-28 01:52:27
【问题描述】:

有人可以帮我将 SQL 转换为 Linq 吗?我是 Linq 的新手,需要一些帮助....

我的 SQL 查询字符串是;

SELECT *, Sum(RequisitionQTY*RequisitionPrice) as Total 
FROM partrequisition 
WHERE ReferenceNumber = searchModel.ReferenceNumber 
GROUP BY 'ReferenceNumber'

到目前为止我得到的是

var result = db.partrequisition
    .Where(c => c.ReferenceNumber == searchModel.ReferenceNumber)
    .GroupBy(c => c.ReferenceNumber)
    .Select( <??> );

不明白如何进行计算并将其构建到 Linq..

谢谢...

【问题讨论】:

    标签: c# linq sql-to-linq-conversion


    【解决方案1】:

    像这样?结果将是每个参考编号的总和列表

    var result = db.partrequisition
        .Where(c => c.ReferenceNumber == searchModel.ReferenceNumber)
        .GroupBy(c => c.ReferenceNumber)
        // For each group, calculate the sum
        .Select(g=> g.Sum( item=>item.RequisitionQTY*item.RequisitionPrice ))
        .ToList();
    

    【讨论】:

    • 谢谢.. 我收到十进制错误消息?不包含“SelectMany”的定义,并且找不到接受“十进制”类型的第一个参数的扩展方法“SelectMany”。当前上下文中不存在名称“SelectMany”。
    • 在 Sum() 调用之后缺少一个“)”。尝试将其添加回来。
    • 再次感谢您.. 错误消息 无法将类型 'System.Collections.Generic.List' 隐式转换为 'System.Data.Entity.DbSet'
    • 与 DbSet 相关的问题超出了原始 OP 的范围。正如我所说,这里的结果是一种 List。如何将结果反馈到您的数据库,值得另一个问题
    猜你喜欢
    • 1970-01-01
    • 2017-11-16
    • 2021-09-17
    • 1970-01-01
    • 2021-08-18
    • 2019-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多