如何使用entity framework按日期分组,而不是按时间分组
mycode的:
//get data var myData = from log in db.OperationLogs group log by log.CreateTime.Date into g orderby g.Key select new { CreateTime = g.Key, Count = g.Count() };
这段代码会抛出一个exception,就像entity framework不支持get Date操作一样。 因为log.createtime都有日期和时间,我想按日期分组,我该怎么做
使用EntityFunctions.TruncateTime
方法( Nullable
) 。 它将在生成的SQL查询中转换为TRUNCATETIME()
TSQL函数,它可以满足您的需要:
返回表达式,并截断时间值。
所以你的代码应该如下:
//get data var myData = from log in db.OperationLogs group log by EntityFunctions.TruncateTime(log.CreateTime) into g orderby g.Key select new { CreateTime = g.Key, Count = g.Count() };
var result = from s in entitiesModel.TvysFuelTankDatas orderby s.Datetime ascending group s by new { y = s.Datetime.Year, m = s.Datetime.Month + "/", d = s.Datetime.Day + "/" } into g select new WellDrillData { Date = Convert.ToDateTime(g.Key.d.ToString() + g.Key.m.ToString() + g.Key.y.ToString()), Depth = (double)g.Sum(x => x.Difference) }; List dailyFuelConsumptions = result.ToList();