gpt4 book ai didi

linq - 使用 linq 和 Entity Framework 按值范围分组

转载 作者:行者123 更新时间:2023-12-01 01:15:01 26 4
gpt4 key购买 nike

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

 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 和 Entity Framework 完成此操作的推荐方法是什么?

最佳答案

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

在客户端处理分组

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

在服务器上处理分组

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

关于linq - 使用 linq 和 Entity Framework 按值范围分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12572886/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com