4

我需要一些按年龄范围汇总的数据,例如:

 Age    |   Members
 ------------------
 0-13   |   150
 14-19  |   250
 20-30  |   400

在我的 linq 查询中,我使用EntityFunctions.DiffYears根据出生日期获取年龄:

let age = EntityFunctions.DiffYears(contact.Birthday, today)

但是,如果我按年龄字段分组,我将得到 19、20、21 ......而不是范围。使用 linq 和实体框架完成此操作的推荐方法是什么?

4

1 回答 1

4

有两种方法可以做到这一点:

在客户端处理分组

首先按照您的描述按年龄对它们进行分组,然后使用 linq to object 结果将年龄映射到一个年龄范围,然后按年龄范围分组。请参阅使用 Linq 按变量整数范围分组

在服务器上处理分组

定义一个将年龄映射到年龄范围的存储过程(例如,返回 0 表示 0 到 13 岁之间的年龄,1 表示 14 到 19 岁等等),然后在查询中使用这个存储过程。

于 2012-09-24T22:09:00.407 回答