entity-framework - Entity Framework 中的 GROUP 和 SUM

标签 entity-framework select group-by sum linq-to-entities

我想为每个客户选择一个订单项目的所有(已支付)价格的总和。
这是SQL命令:

SELECT c.name,SUM(oi.price * oi.count) from customer c
JOIN order o ON c.id=o.customer_id
JOIN order_item oi ON o.id=oi.order_id
JOIN bill b ON b.id=oi.bill_id
WHERE b.payment_id is NOT null
GROUP by c.name;

我不知道如何在 EF 中做到这一点。
结果示例:
John Smith  1500,2  
Allan Babel 202,0  
Tina Crown  3500,78

(逗号用作小数点..因为价格是十进制值)

最佳答案

您的示例结果似乎与您的 SQL 命令不匹配,但我认为您正在寻找这样的东西:

var query = from c in context.Customers
            join o in context.Orders on c.id equals o.customer_id
            join oi in context.OrderItems on o.id equals oi.order_id
            join b in context.bill on oi.bill_id equals b.id
            where b.payment_id != null
            group oi by c.name into g
            select new
            {
              Name = g.Key,
              Sum = g.Sum(oi => oi.price * oi.count),
            }

关于entity-framework - Entity Framework 中的 GROUP 和 SUM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10316648/

相关文章:

mysql - 检索每组中的最后一条记录 - MySQL

c# - 流畅的关系配置

javascript - onChange 不适用于 selectedIndex

php - MySQL 将我的选择合并在一起

MySQL:使用子查询在 SELECT 语句中定义列

sql - 如何按小时或 10 分钟对时间进行分组?

sql - 如何检索具有相同状态的连续记录的最大日期间隔?

c# - Entity Framework - 包含的导航属性的选择条件

c# - EF6如何映射这种零或一对一关系

c# - 依赖注入(inject)和 Entity Framework