在实体框架中按日期期间名称分组
本文关键字:日期 实体 框架 | 更新日期: 2023-09-27 18:33:53
我有带有日期时间的表?列"DueOn"。我正在尝试按此列对所有行进行分组。
var groupBy = new Expression<Func<MyEntity, DateTime?>>(t => t.DueOn);
var groups = sequence.GroupBy(groupBy).ToList();
一切正常。但我想以以下形式分组:
昨天今天明天总有一天如果可为空
我看到的一种方法是从结果中循环浏览列表,比较 DueOn 并将项目复制到具有上述组的另一个列表。
但也许有更有效的解决方案?
谢谢
在不创建显式表达式对象的情况下,在预定的时间存储桶中对日期进行分组的一种方法是:
dates.GroupBy(da => da.HasValue
? da.Value.Date > DateTime.Today.AddDays(1)
? "Future"
: da.Value.Date > DateTime.Today
? "Tomorrow"
: da.Value.Date == DateTime.Today
? "Today"
: da.Value.Date == DateTime.Today.AddDays(-1)
? "Yesterday"
: "Overdue"
: "Some day")
当然,您可以将整个表达式存储在 groupBy
变量中。