写点什么

LINQ 的分组聚合技术

  • 2008-01-07
  • 本文字数:558 字

    阅读完需:约 2 分钟

很大程度上来讲,LINQ 的工作方式很像 SQL。查询源定义、join、select 和 where 子句都是相当标准的,而 Group/By/Into 子句则正是我们这里要仔细说明的。SQL 总是返回矩阵式数据集,与它不同的是,LINQ 具备了返回层次化数据的能力,这也给它自己带来了更多新的挑战。

举一个例子,将客户按照所属 country 和 city 进行分组查询,在 SQL 中,可能会通过在客户端手动分组或者执行 1+N+(N*M)次查询来实现,一个查询用来获取所有的国家,一个查询用来获取每个国家的所有城市,然后再逐个查询出每个国家的每个城市下所有的客户列表。

而在 LINQ 中,它可以通过一个带有一系列子查询的查询语句一次性完成,当然,这也增加了查询的复杂度。Mitsu 演示如下:

<p>var q =<br></br> from c in db.Customers<br></br> group c by c.Country into g<br></br> select new { <br></br> g.Key, <br></br> Count = g.Count(), <br></br> SubGroups = from c in g <br></br> group c by c.City into g2<br></br> select g2};</p>

为说明 LINQ 框架的灵活性,Mitsu 将它简化到了仅一行:

<p>var result = customers.GroupByMany(c => c.Country, c => c.City);</p>

Mitsu 用一种能适用于任何 LINQ 查询的方式实现了它。你可以在他的博客上查看源码以及关于它是如何工作的解释文章。查看英文原文 LINQ Grouping Techniques

2008-01-07 23:442206
用户头像

发布了 90 篇内容, 共 16.0 次阅读, 收获喜欢 11 次。

关注

评论

发布
暂无评论
发现更多内容

LED显示屏由哪些部件组成

Dylan

系统 LED显示屏 屏幕 电源

双十一剁手节,MobPush助力各大电商平台提前锁定潜力用户

MobTech袤博科技

大数据

Amazon Bedrock 划算吗?Bedrock 大模型服务定价与分析

魏临

TiDB in SaaS丨TiDB 在 Moka BI 场景下的应用

TiDB 社区干货传送门

实践案例

价值:我对工作的思考

老张

价值 职场经验

AI引领搜索智投新时代 | 百度营销推出“AI投放项目”

极客天地

如何构建新一代实时湖仓?袋鼠云基于数据湖的探索升级之路

袋鼠云数栈

数据仓库 数据湖 湖仓一体 大数据仓库 实时湖仓

高级加密货币交易所软件演变:2024 年主要趋势和策略

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 NFT开发 公链开发

盈利能力管理,为企业未来发展创造优势

智达方通

全面预算 盈利能力

TiDB快速部署工具

TiDB 社区干货传送门

实践案例 集群管理 管理与运维 安装 & 部署

从 Oracle 迁移到 TiDB 的方案设计与用户实践

TiDB 社区干货传送门

实践案例

多维详述MediaBox互动直播AUI Kit低代码开发方案

阿里云CloudImagine

云计算 视频云

培养财务团队协作,冲破市场经济逆境

智达方通

财务分析 业财融合 智达方通 财务团队协作

使用Python调用API接口获取拼多多商品数据:一篇详细说明文章

Noah

iPulse 激活版for mac(系统状态监控软件) v3.141

胖墩儿不胖y

Mac软件 系统监控软件

分享一套适合二开的JAVA开源版本MES系统

万界星空科技

生产管理系统 云mes 免费mes 开源mes mes源码

万界星空科技生产管理MES系统的数据追溯技术

万界星空科技

mes 云mes 追溯系统 产品追溯 万界星空科技mes

同盾科技 x TiDB丨实时数据架构为风控智能决策保驾护航

TiDB 社区干货传送门

实践案例

CCIA数安委等组织发布PIA星级标识名单,合合信息再次通过数据安全领域权威评估

合合技术团队

人工智能 合合信息 个人信息保护 PIA

武创院区块链产业研究所:基于鲲鹏DevKit开发区块链政务服务协同数据治理平台,数据管理更放心

彭飞

推送效率低?MobPush带着APP消息推送一站式解决方案来了

MobTech袤博科技

大数据

用友BIP,助力轴承行业数智化转型

用友BIP

数智化转型

LINQ的分组聚合技术_.NET_Jonathan Allen_InfoQ精选文章