使用linq和实体框架按值范围分组

使用linq和实体框架按值范围分组,linq,entity-framework,linq-to-entities,Linq,Entity Framework,Linq To Entities,我需要一些按年龄段汇总的数据,比如: Age | Members ------------------ 0-13 | 150 14-19 | 250 20-30 | 400 在我的linq查询中,我使用它根据出生日期获取年龄: let age = EntityFunctions.DiffYears(contact.Birthday, today) 然而,如果我按年龄场分组,我将得到19,20,21。。。而不是范围。 使用linq和实体框架实现此功能的推

我需要一些按年龄段汇总的数据,比如:

 Age    |   Members
 ------------------
 0-13   |   150
 14-19  |   250
 20-30  |   400
在我的linq查询中,我使用它根据出生日期获取年龄:

let age = EntityFunctions.DiffYears(contact.Birthday, today)
然而,如果我按年龄场分组,我将得到19,20,21。。。而不是范围。
使用linq和实体框架实现此功能的推荐方法是什么?

有两种方法:

在客户端处理分组

首先按照您所描述的年龄对它们进行分组,然后使用结果上的linq to对象将年龄映射到年龄范围,然后按照年龄范围进行分组。看

在服务器上处理分组

定义将年龄映射到年龄范围的存储过程(例如,对于0到13岁的年龄返回0,对于14到19岁的年龄返回1等等),然后在查询中使用此存储过程