【问题标题】:Grouping by range of values with linq and entity framework使用 linq 和实体框架按值范围分组
【发布时间】:2012-09-25 07:08:09
【问题描述】:

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

 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 和实体框架完成此任务的推荐方法是什么?

【问题讨论】:

    标签: linq entity-framework linq-to-entities


    【解决方案1】:

    有两种方法:

    在客户端处理分组

    首先按照您的描述按年龄对它们进行分组,然后使用 linq to objects 在结果上将年龄映射到一个年龄范围,然后按年龄范围进行分组。见Group by variable integer range using Linq

    在服务器上处理分组

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-27
      • 2017-07-07
      • 1970-01-01
      相关资源
      最近更新 更多