从C# 3.0说以人为本(二)—— LINQ语法结构

接着上一次的程序我们继续分析探讨,LINQ语句如下:

  1. var numQuery =
  2.     from num in numbers
  3.     where (num % 2) == 0
  4.     select num;

小凡第一次看到这个语句时,第一个念头是:为什么select要放在最后?事实上,写惯了SQL,大家都觉得SELECT放在前面才是最舒服的。

 

问题是:为什么SELECT一定要放在前面?因为SQL放在前面吗?SELECT放在前面一定方便吗?

 

让我们回忆一下写SQL语句时的尴尬,我想大多数人都是和小凡这样的。

我们设想下面一种写SQL的情况,有5张表要做互相连接,并且5张表每个表中要取3个字段,那我们的FROM肯定是洋洋洒洒的:FROM TABLE_A A,TABLE_B B,TABLE_C C,TABLE_D D,TABLE_E E。

可是,又有多少人一开始就能决定5张表要用什么别名呢?以上的情况还是内连接,万一是外连接呢?挂了,FROM就更长了,LEFT OUTTER JOIN……ON……LEFT OUTTER JOIN……ON……,为了方便,SQL的SELECT就变成了SELECT *,等写完了FROM语句,回头再按照别名把*改成“别名.字段”。

这和一开始不写SELECT *,放到最后写有什么区别?!而且我们还要小心翼翼的把*替换成字段,还要注意空格,因为后面已经写好了FROM,上帝啊,这么麻烦的SQL写法,实在是痛苦不堪!

好吧,我们没得选择,因为所有的数据库SELECT语句都是这样的,第一个是这样,后面的也要变成这样!这才是灾难的起源,痛苦的根源!不这样写SQL语句根本不能执行!

 

但是LINQ是不需要按照这样的约定的,因为它和SQL实在是两码事。吸取了SQL的精华,去掉了SQL的糟粕,微软的C#设计师终于把情况扭转了过来,写完FROM再写SELECT,你想要用的信息前面都已经写好了,我们要做的,就是另起一行,按照前面写的别名一个个写需要SELECT的字段。

 

有的时候,不是大家用的最多的就是最好的,好好想想,在合适的情况下扔掉那些看起来是“铁律”的规律,让真正的以人为本精神充斥你的大脑,让大家觉得熟悉好用,又改掉那些不实用的细节,这才是方便的工具。

转载于:https://www.cnblogs.com/vanpan/archive/2009/01/07/3583053.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值