我有一个应用程序,允许用户输入他们工作的时间,我正在尝试为此构建一个良好的报告,利用LINQ to Entities.因为每个TrackedTime都TargetDate只是a的"Date"部分DateTime,所以按用户和日期对时间进行分组相对简单(为简单起见,我省略了"where"子句):
var userTimes = from t in context.TrackedTimes
group t by new {t.User.UserName, t.TargetDate} into ut
select new
{
UserName = ut.Key.UserName,
TargetDate = ut.Key.TargetDate,
Minutes = ut.Sum(t => t.Minutes)
};
Run Code Online (Sandbox Code Playgroud)
由于该DateTime.Month属性,按用户分组和Month只是稍微复杂一点:
var userTimes = from t in context.TrackedTimes
group t by new {t.User.UserName, t.TargetDate.Month} into ut
select new
{
UserName = ut.Key.UserName,
MonthNumber = ut.Key.Month,
Minutes = ut.Sum(t => t.Minutes)
};
Run Code Online (Sandbox Code Playgroud)
现在是棘手的部分.是否有可靠的方式按周分组?我根据对类似LINQ to SQL问题的响应尝试了以下内容:
DateTime firstDay = …Run Code Online (Sandbox Code Playgroud)