我有这个 LINQ 查询
var data = (from orders in db.Orders
group orders by orders.OrderDate into dateGroup
select new OrderDateGroup()
{
OrderDate = dateGroup.Key,
OrderCount = dateGroup.Count()
}).Take(10);
orders.OrderDate 是 DateTime 但我只想根据日期进行分组
最佳答案
您可以使用规范函数:
group orders by EntityFunctions.TruncateTime(orders.OrderDate) into dateGroup
附加信息:
EntityFunctions
方法被称为 规范函数 .这些是所有 Entity Framework 提供程序都支持的一组函数。这些规范函数将被转换为提供者的相应数据源功能。规范函数是访问核心语言之外的功能的首选方式,因为它们使查询保持可移植性。您可以找到所有规范函数 here以及所有日期和时间规范函数 here .
另外,不要忘记包含
System.Data.Objects
命名空间来自 System.Data.Entity.dll
.注:
如果您使用的是EF6,那么您必须考虑更改
EntityFunctions
至 DbFunctions
.并且不要忘记包括 System.Data.Entity
命名空间来自 EntityFramework.dll
.
关于c# - 我如何仅在 LINQ 查询中的日期时间中的日期上使用 group by,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30216179/