asp.net如何只在日期从 datetime 在 LINQ 查询中使用分组依据

标签: Asp.net Linq C#
发布时间: 2017/3/26 4:30:32
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我有此 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);

订单。订购日期是日期时间,但我想要只根据日期进行分组

解决方法 1:

您可以使用规范函数︰

group orders by EntityFunctions.TruncateTime(orders.OrderDate) into dateGroup

附加信息︰

EntityFunctions规范函数调用的方法。而这些是一组函数,由实体框架的所有提供程序支持。为提供程序,这些规范函数将被转换为相应的数据源功能。规范函数是访问核心语言之外的功能的首选的方法,因为他们保持查询便携式。

你可以找到所有的规范函数在这里和所有日期和时间规范函数在这里

另外,别忘了包括 System.Data.Objects 从 namepsace System.Data.Entity.dll

注意︰
如果您使用的 EF6,那么你必须考虑改变 EntityFunctions DbFunctions 。别忘了,包括 System.Data.Entity namepsace 从 EntityFramework.dll

赞助商