如何使用 SUM 计算将 SQL 转换为 Linq
Posted
技术标签:
【中文标题】如何使用 SUM 计算将 SQL 转换为 Linq【英文标题】:How to convert SQL to Linq with SUM calculation 【发布时间】: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..
谢谢...
【问题讨论】:
【参考方案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以上是关于如何使用 SUM 计算将 SQL 转换为 Linq的主要内容,如果未能解决你的问题,请参考以下文章
帮助将 SQL 语句转换为 LINQ Lambda(在 group by 和 sum 方面需要帮助)
如何通过 LINQ 将 TimeSpan 计算转换为 SQL
将包含 where、group by、sum 和必须的 MySQL 语句转换为 Linq to Sql