SeT*_*ToY 5 .net c# linq count
我有一个带有列ResolvedDate和的SQL Server表ResolvedBy.
现在我想选择这两列并计算它们的结果,我认为我会这样实现:
_dataContext.Activities
.Where(a => a.IsResolved && a.ResolvedBy == userId)
.Select(a => new { a.ResolvedDate, ***COUNT*** });
Run Code Online (Sandbox Code Playgroud)
如您所见,Count-Part缺失.
我希望得到所有已在此ResolvedDate中完成的活动并计算它.
我该如何实现呢?
Ral*_*ton 18
from a in dataContext.Activities
where a.IsResolved && a.ResolvedBy == userId
group a by a.ResolvedDate into g
select new {ResolvedOn=g.Key, NumberResolved= g.Count()}
Run Code Online (Sandbox Code Playgroud)
如果您尝试按日期计算每个项目,则需要使用GroupBy:
var countsByDate = _dateContext.Activities
.Where(a => a.IsResolved && a.ResolvedBy == userId)
.GroupBy(a => a.ResolvedDate)
.Select(g => new {ResolvedDate = g.Key, Count = g.Count() });
Run Code Online (Sandbox Code Playgroud)
您必须通过ResolvedDate对数据进行分组,以获得每天解决的活动数量.
var dates = from a in dataContext.Activities
where a.IsResolved && a.ResolvedBy == userId
group a by a.ResolvedDate into g
select new { Date = g.Key, Count = g.Count() }
Run Code Online (Sandbox Code Playgroud)
要按日分组(不分小时,分钟等),您可以更改组语句:
var dates = from a in dataContext.Activities
where a.IsResolved && a.ResolvedBy == userId
group a by a.ResolvedDate.Date into g
select new { Date = g.Key, Count = g.Count() }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
36331 次 |
| 最近记录: |