在本文中,Aaron Erickson 谈了 LINQ、表达式树,并介绍了他对对象建立的 LINQ 扩展索引 (i4o)。i4o 能够让我们对位于内存中的集合数据进行索引,并能够与 LINQ 配合使用。另外他还提到表达式树如何于 LINQ 交互,如何在特定的场景下配合使用等。
在采访中,Aaron 还饶有兴趣地谈起创建 i4o 项目的背景。在他准备给一些朋友做一个关于 LINQ 的演示时,突然想到,是否可以像在数据库中使用索引一样,为内存中的大规模集合也添加一些索引,进而提高程序的执行效率。看来真应了前人说过的话,“生活中不是缺少美,而是缺少发现美的眼睛”
在未来,i4o 还会扩展支持到动态语言运行时,这是很吸引人的一个功能。虽然有诸多的好处,但也有读者提出不同的意见,认为”为数据创建内存索引“是一个很陈旧的话题,并没有太多的新意。我们应该将注意力放在理解已经能解决这一问题的关系理论、模式匹配等知识上,而不是要重新再去创造轮子。你的观点呢?
更多内容推荐
Django 之美:3 行代码支持大数据量的关联外键 (autocomplete_fields)
2020-12-03
数学专栏课外加餐(三):程序员需要读哪些数学书?
我围绕专栏的三大模块给你推荐几本可以配套学习的书籍。
2019-01-25
20 |【实验】GitHub 社交登录实验和课后扩展
无
2018-05-16
在 CLR 之上的构建领域特定语言
在Ayende Rahien最新的这篇文章中介绍了内部DSL作为创建领域特定语言(DSL)的一种手段,无需考虑设计一门全新语言所带来的复杂性。它比较了适合作为 DSL宿主语言的不同.NET语言,并由于它的元数据编程基础功能、灵活性和性能,提出了Boo是理想的候选语言。
临时表:复杂查询,如何保存中间结果?
当我们遇到一些复杂查询的时候,经常无法一步到位,或者是一步到位的开发和维护的成本过高,这时就可以使用临时表来解决。
2021-04-06
i4o 开源项目增强 LINQ 索引功能
当一个LINQ表达式直接访问数据库时,DLINQ Provider支持所有数据库索引。但是LINQ不仅会访问数据库,它还可能访问XML或者更简单的对象集合等。对于稍大些的查询,索引的缺失可能成为一个问题。
你还需要数据层吗?
随着LINQ的临近发布,独立数据访问层的必要性需要重新进行评估了。它是否仍是应用程序设计的一个重要部分?或者它是否会变成一个过去的附属物?
LINQ to SQL 何去何从
尽管微软的ORM存在许许多多的问题,而且市面上例如LLBLGen,nHibernate与OpenAccess之类的替代品已经够多了,许多开发者被强迫使用微软的技术是因为他们的公司或客户的需要。而在取舍之间,看起来大多数开发者深信实体框架(Entity Framework)并非可行的方案。那么他们该如何应对?
文章:通过索引器简化 C#类型信息访问
对象封装时,往往要考虑采用简洁的方式提供对类型内部成员的访问,作为C#的一个语法特性——索引器非常适合完成该任务。<a href="http://www.infoq.com/cn/articles/simplify-c-type-access-indexer" target="_blank">直接点击阅读完整文章</a>
微软推出 Microsoft.Data.SqlClient,替代 System.Data.SqlClient
微软继续努力将微软产品从.NET Core中分离出来,并将SQL Server驱动程序分离到了一个单独的部署流中。
使用 Search Template 和 Index Alias 查询
2019-07-27
LINQ to SQL 真的已死?
让我们回溯到七月,那时,我们报道了LINQ to SQL被转交到SQL数据可编程性团队。这一事件在开发者社区引发了大量的关注,人们担心LINQ to SQL会被终止,而转而使用ADO.NET实体框架。最近,LINQ to SQL和实体框架团队的程序经理Tim Mallalieu的一篇通告,又进一步加剧了事态的发展。
扩展:目标检测更多应用场景介绍
2020-07-09
通过索引器简化 C#类型信息访问
作为一个有别于Java、Ruby等语言的一个特性,C#可以用索引器(Indexer)将类型本身以对象数组的形式供外部使用。同时,把索引器和LINQ结合使用倒是一个非常不错的组合,索引器做接口、LINQ完成内部检索逻辑,客户程序在无需记住具体方法名称的前提下,按照键值检索即可,索引器内部则依托LINQ to系列的基础,提供对各种异构数据源的访问。
数据与对象不等式的 LINQ 解
业务系统需要处理的是领域逻辑,适用的是业务实体对象,但信息服务层提供的仅仅是数据,而“数据!=对象”。面对巨大的开发需求,各开源组织和厂商纷纷给出了自己的答案,在.NET 3.5中微软也给出了自己的解——LINQ(Language Integrated Query)。
Aaron Erickson 谈论 LINQ 和 i4o
Aaron Erickson谈了LINQ、表达式树,并介绍了他对对象建立的LINQ扩展索引(i4o)。i4o能够让我们对位于内存中的集合数据进行索引,并能够与LINQ配合使用。另外他还提到表达式树如何于LINQ交互,如何在特定的场景下配合使用等。
NHibernate 和 Entity Framework 4.0 优劣势争论
最近,Oren Eini(也被称为Ayende Rahein)发表了一个帖子,从而引发了关于NHibernate和Entity Framework 4.0各自优点和功能的讨论,而这二者都是基于.NET的对象/关系映射框架。InfoQ对此讨论进行了深入的探究,以了解其中提到的观点。
.NET 4 特性聚焦:并行编程
微软计划在.NET 4中发布一个涉及广泛的并行编程函数库。它们包括并行LINQ(Parallel LINQ)、结构化并行性语法(Structured Parallelism)(如Parallel.For)、任务并行库和协调一致的数据结构(Coordination Data Structures)。
玩转 GaussDB 中的 SET 操作符
关系数据库中提供了一个关于集合的运算符SET操作符,其中包括以下操作:UNION/UNION ALL 并集、INTERSECT 交集、MINUS 差集。
2023-03-02
推荐阅读
跳表:为什么 Redis 一定要用跳表来实现有序集合?
2018-10-29
逐浪硅谷的华人程序媛
2018-09-11
解读数仓中的数据对象及相关关系
2022-12-02
Entity Framework 6.3 和 EF Core 3.0 路线图
C#中提供的 VB 不支持的新特性
Java 对象持久性:联盟状态
深度强化学习在游戏研发中的应用
2019-01-02
电子书

大厂实战PPT下载
换一换 
杨鹏军 | 华为云 前端工程师
施畅(三策) | 阿里巴巴 高级技术专家
高洁璇 | 百度 智能小程序研发部 技术经理
评论