在我的数据库上,我可以运行以下命令:
SELECT Distinct ApprovalStatus, Id, COUNT (ApprovalStatus) total
from dbo.DummyTable
WHERE Id!= 0
group by ApprovalStatus, Id
并将生成以下内容:
ApprovalStatus | Id | Count
---------------|----|-------
Approved | 47 | 1423
Pending | 47 | 4
Approved | 46 | 1685
Pending | 46 | 47
我想要在我的项目中也一样。最初,我是通过简单的Entity Framework逻辑从数据库中返回所有内容。
现在我有了数据,我试图通过尝试将SQL
代码转换为Lambda表达式来拆分数据。这就是我所拥有的:
var count = data.GroupBy(d => d.Id)
.Select(x => new
{
ID = x.Select(x=>x.Id.ToString()),
Count = x.Select(x => x.ApprovalStatus == "Pending").Count()
});
我正在苦苦挣扎的是让我的代码以与在SQL中类似的方式输出数据。有时我想在网页上显示数据。
答案 0 :(得分:4)
您可以这样做
var results = data.GroupBy(x => new { x.ApprovalStatus, x.Id })
.Select(x => new
{
ApprovalStatus = x.Key.ApprovalStatus,
Id = x.Key.Id,
Count = x.Count()
});