Visual C# 2008+SQL Server 2005 数据库与网络开发--11.2.3 LINQ的查询和方法

  在前面已经讲过LINQ在查询中要使用的关键字,LINQ的查询语法也是由这些关键字构成的。C# 2008中的每个语法查询表达式都以from子句开始,以selectgroup子句结束。第一个的from子句后可以跟随零个或多个fromwhere子句,就像SQL查询中第一个select子句后面可以跟随零个或多个selectwhere子句一样。在LINQ查询中每个from子句都是获取数据源的产生迭代的生成器,而每个where子句都是一个从结果中排除项目的筛选器。在最终的selectgroup子句之前,可以添加指定结果顺序的orderby子句或者用于分组的group by子句。LINQ的查询语法表达式如下所示。

from item in expr

((from item in expr) | (where predExpr))*

(orderby (keyExpr (ascending|descending)?)+)?

((select selExpr) | (group selExpr by keyExpr))

C# 2008中也为LINQ提供了多个方法,在LINQ中方法和查询很相似,但是却有本质的不同,简单来说LINQ的查询是对数据源数据普遍的筛选,而通过LINQ中的方法是对数据源中的数据进行有针对性的筛选。在C# 2008中的LINQ方法都是具有针对性的,每一个方法都有自己的名称。例如,Max(最大值),Min(最小值),Count(计数),Average(平均数)等等。在LINQ查询中可以通过使用方法语法而非查询语法直接调用这些方法。

C# 2008开发的过程中,使用LINQ的查询语法可以使开发更简单、更易读。但是方法语法和查询语法之间并无语义上的区别。但是方法的出现大大方便了查询的功效,例如,获取指定条件的最大值元素的查询,只需要调用MAX方法就可以了。

posted on 2008-06-16 15:33  我的CSHARP  阅读(249)  评论(0编辑  收藏  举报