LINQ之路(3):LINQ扩展】的更多相关文章

本篇文章将从三个方面来进行LINQ扩展的阐述:扩展查询操作符.自定义查询操作符和简单模拟LINQ to SQL. 1.扩展查询操作符 在实际的使用过程中,Enumerable或Queryable中的扩展方法有时并不能满足我们的需要,我们需要自己扩展一些查询操作符以满足需要.例如,下面的例子: var r = Enumerable.Range(1, 10).Zip(Enumerable.Range(11, 5), (s, d) => s + d); foreach (var i in r) { C…
书写LINQ查询时又两种语法可供选择:方法语法(Fluent Syntax)和查询语法(Query Expression). LINQ方法语法是非常灵活和重要的,我们在这里将描述使用链接查询运算符的方式来创建复杂的查询,方法语法的本质是通过扩展方法和Lambda表达式来创建查询.C# 3.0对于LINQ表达式还引入了声明式的查询语法,通过查询语法写出的查询比较类似于SQL查询.本篇会对LINQ方法语法进行详细的介绍. 当然,.NET公共语言运行库(CLR)并不具有查询语法的概念.所以,编译器会在…
LINQ之路(2):LINQ to SQL本质 在前面一篇文章中回顾了LINQ基本语法规则,在本文将介绍LINQ to SQL的本质.LINQ to SQL是microsoft针对SQL Server的一个ORM的解决方案.既然是ORM,那对象(Object).关系数据(Relation)和映射(Mapping)这三个组成要素是不可或缺的.本文将分为对象和关系数据的映射.从查询表达式到SQL的转换和DataContext数据上下文三个部分来说明. 1.对象和关系数据的映射 通过定义对象和关系数据…
本系列文章将会分为3篇来进行阐述,如下: LINQ之路(1):LINQ基础 LINQ之路(2):LINQ to SQL本质 LINQ之路(3):LINQ扩展…
本篇将是关于LINQ Operators的最后一篇,包括:集合运算符(Set Operators).Zip操作符.转换方法(Conversion Methods).生成器方法(Generation Methods).集合运算符用语对两个sequence进行操作:Zip运算符同步遍历两个sequence(像一个拉链一样),返回的sequence基于在每一个元素对上应用lambda表达式:转换方法用来将实现了IEnumerable<T>的sequence转换到其他类型的集合,或从其他类型的集合转换…
在前面的系列中,我们已经讨论了LINQ简单查询的大部分特性,了解了LINQ的支持计术和语法形式.至此,我们应该可以创建出大部分相对简单的LINQ查询.在本篇中,除了对前面的知识做个简单的总结,还会介绍几种创建更复杂查询的方式,让我们在面对更复杂的场景时也能轻松面对,包括:子查询.创建策略和数据转换. 子查询 在创建一个复杂的查询时,通常我们需要用到子查询.相信大家都记得SQL查询里的子查询,在创建LINQ查询时也是如此.在LINQ中,对于方法语法,一个子查询包含在另外一个查询的lambda表达式…
分享一个学习Linq的好博客:Linq之路…
这篇内容继续接着昨天的Lambda表达式的源码继续下去.昨天讲了Lambda表达式,此篇讲扩展方法,这两点都是Linq带来的新特性.    一.扩展方法介绍   废话不多说,先上源码截图: 上图中GetMemoryCount就是一个扩展方法,从上图的标注可以得出以下几点信息: 1.扩展方法需要加this关键词 2.扩展方法和被包含的类必须是静态的 3.被包含的类不能是泛型类 深入总结: 1.扩展方法可以接收任意多个参数,不过第一个参数必须用this修饰. 2.扩展方法的基础是对象, 比如这个对象…
本篇继续LINQ Operators的介绍,包括元素运算符/Element Operators.集合方法/Aggregation.量词/Quantifiers Methods.元素运算符从一个sequence当中获取单个元素:集合方法对sequence进行统计/汇总并返回当个标量值:量词方法用于判断sequence是否满足特定条件并返回bool值. 元素运算符/Element Operators IEnumerable<TSource>→TSource Operator 说明 SQL语义 Fi…
在本篇中,我们将接着上一篇“LINQ to SQL 和 Entity Framework(上)”的内容,继续使用LINQ to SQL和Entity Framework来实践“解释查询”,学习这些技术的关键特性.我们在此关注的是LINQ to SQL和Entity Framework中的”LINQ”部分,并会比较这两种技术的相同和不同之处.通过我们之前介绍的LINQ知识还有将来会讨论的更多LINQ Operators,相信阅者能针对LINQ to SQL和Entity Framework写出优雅…