【发布时间】:2010-09-07 06:54:24
【问题描述】:
我正在试验 Linq,但无法确定分组。我已经阅读了几个教程,但由于某种原因无法弄清楚。
例如,假设我有一个包含多个网站 ID 的表 (SiteStats),其中存储了过去 30 天内按类型访问每个网站的访问者总数。
╔════════╦═════════════╦════════╦══════╗
║ SiteId ║ VisitorType ║ Last30 ║ Total║
╠════════╬═════════════╬════════╬══════╣
║ 1 ║ 1 ║ 10 ║ 100 ║
║ 1 ║ 2 ║ 40 ║ 140 ║
║ 2 ║ 1 ║ 20 ║ 180 ║
╚════════╩═════════════╩════════╩══════╝
在 SQL 中,我可以通过以下方式轻松获取 SiteID 1 的计数:
SELECT SiteId,
SUM(Last30) AS Last30Sum
FROM Sites
WHERE SiteId = 1
GROUP BY SiteId
并且应该得到一个类似...的行
╔════════╦════════════╗
║ SiteId ║ Last30Total║
╠════════╬════════════╣
║ 1 ║ 50 ║
╚════════╩════════════╝
但是我不确定如何使用 Linq 获得此结果。我试过了:
var statsRecord = from ss in db.SiteStats
where ss.SiteId == siteId
group ss by ss.SiteId into ss
select ss;
但我无法用statsRecord.Last30 之类的东西取回总数
有人可以告诉我哪里出错了吗?任何帮助表示赞赏。
【问题讨论】: