【问题标题】:How to convert count in linq? [duplicate]如何在linq中转换计数? [复制]
【发布时间】:2016-01-20 16:23:58
【问题描述】:

我有一种情况,我想计算客户的总交易量。我可以在 mysql 查询中做到这一点,但我不知道在 linq sql 中做到这一点。

select c.name, count(r.custid) 
from receipt r left join in cust c on (c.custid=r.custid) 
group by r.custid

如何在 linq sql 中转换它?

【问题讨论】:

  • 你到底想做什么,我不明白。您询问 linq sql 但您的示例查询是原始 sql 吗?你想知道该查询的 linq 等价物吗?
  • 我想同时显示名称和计数预期结果。姓名 ||大卫伯爵 || 3 所罗门 || 4 约瑟夫|| 1
  • @AhmedGalal:考虑到这个问题的加入部分,这对我来说看起来不够接近。我不是说重复的没有被问到 - 但我不认为就是这样。
  • @AhmedGalal:是的,这是一个更合理的骗局——尽管我不太喜欢这个答案,稍后会添加另一个 :)

标签: c# sql linq


【解决方案1】:

我不会从 SQL 开始...我会首先考虑您在计数的内容,这基本上是与客户匹配的组中的收据记录数。听起来你想要这样的东西:

var query = from customer in db.Customers
            join receipt in db.Receipts
              on customer.CustomerId equals receipt.CustomerId
              into customerReceipts
            select new { customer.Name, Count = customerReceipts.Count() };

请注意,与 LINQ 中的许多“左连接”示例不同,我们不使用 customerReceipts.DefaultIfEmpty(),因为我们只需要计数 - 如果该客户没有收据,该计数应为 0。

【讨论】:

猜你喜欢
  • 2021-04-10
  • 2021-01-30
  • 2018-07-12
  • 2016-12-22
  • 1970-01-01
  • 2021-12-25
  • 2011-01-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多