我想在日期时间的日期,小时和分钟部分(我不需要第二个)进行分组,我该如何实现。因为我使用LINQ进行实体查询,似乎我应该使用实体函数,但它没有适当的方法,为了澄清我的需要,请考虑这个:
var query = myList
.GroupBy(s => new {s.date_time,Product_Id})
.Select(g => new {date = g.Key.date_time, PID = g.Key.Product_Id, Count = g.Count()})
.ToList();
我需要类似的东西:
s.date_time.AddSeconds(-s.date_time.Second)
代替
s.date_time
但很明显它会遇到异常,所以我需要使用实体函数,但它有addSeconds方法,但没有第二种方法。
顺便说一句,我使用.net4
答案 0 :(得分:1)
如果可以直接在EF中使用,那么可能必须使用为各种功能构建的扩展类来完成它,包括那些与日期和时间有关的功能:Entity Functions
在你的小组中可能是这样的。
.GroupBy(s => new {
EntityFunctions.CreateDateTime(s.date_time.Year, s.date_time.Month, s.date_time.Day, s.date_time.Hour, s.date_time.Minute, 0)
,Product_Id})
答案 1 :(得分:0)
你可以尝试:
.GroupBy(s => new {s.date_time.Year,s.date_time.Month...,s.date_time.Minute,Product_Id})