如何使用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();