我正在尝试使用 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
有人可以让我知道我要去哪里错了吗?任何帮助表示赞赏。