LINQ前景不容乐观

开发 后端
这里介绍LINQ前景,在体验LINQ语言给我们带来的快感的同时,渐渐LINQ的弊端也开始暴漏了出来,我个人发现不少LINQ的不足。

这里我们主要介绍LINQ前景和LINQ目前的现状弊端,包括介绍LINQ的动态查询效果类似于C#的反射等方面。

LINQ前景

目前的LINQ还是非常之不完善的,不论是LINQ团队的LINQ TO SQL 或是 ADO.Net的LINQ TO ENTITY,微软连VS2008的SP1都未将Dynamic。cs进行封装,难道真的就如传言说的,LINQ即将死亡?

其实任何情况都是未知数,就好比暴雪总是喜欢不按常理出牌一样,微软在今年经融危机中也受到了相当的创伤,所以谁能说LINQ的未来怎么样,官方没公开.Net4.0之前,不光LINQ,包括F#,一切都是谜。

那LINQ还能使用吗?您在安装厚重的VS2008的时候,宣传广告中会不停的显示VS2008的新特性,其中重点就有LINQ,那作为一个全球***悍的开发软件,把重点的目光投给LINQ,那么就一定有它的地位和意义。

VS2008还在CTP的时候,我就已经开始使用LINQ了,用了那么久,不断的学习及体会到它的方便之处的同时,随着不断的深入,在体验LINQ语言给我们带来的快感的同时,渐渐LINQ的弊端也开始暴漏了出来,我个人发现LINQ的不足有如下:

1.LINQ非延迟加载需要变立即加载的话需要转换成List<T>,但是同时带来的是List<T>是无序的,那么将之做为数据源绑定的话, 自动排序将不存在,那么目前解决办法只能自己重写List<T>的Sort()方法,网上有相关的文章可以参考,如何让它序列化。

2.LINQ的动态查询效果类似于C#的反射,必须自己去网上下载一个Dynamic。cs,我很不明白为什么连SP1都不把它包装一下?

3.LINQ的dbml很讨厌,为什么就不能做得和Dataset一样智能些,如果用VS的对象关系设计器手动更改dbml代码的话,那么你会发现你原先修改好的东西全被覆盖了,这会气疯你,请问谁会无聊到手写非常之复杂的dbml?目前解决办法只有使用plinqo,CodeSmith出品,看到CodeSmith应该再熟悉不过了,我打一开始就很排斥它真的。

4.LINQ读取存储过程不能识别exec命令,假如你的存储过程结尾不是类似select * from。。。,而是exec 。。。,好那么你把它拖进dbml里,你就会发现不管你怎么写,返回值都是int类型,那么有人讲了,我可以手动把int改成 IsingleSource,但是这样又回到了第(3)点不是吗?这意味着什么?想用LINQ使用存储过程,不能用拼接的通用存储过程,而必须老老实实的写清楚存储过程里的表名,列名等等,同样意味着开发效率无法提高。

5.LINQ如不使用存储过程,那么它的性能就只能说比传统的connection连接优越一些,还好IQueryable内置了缓存功能,但还是远无法达到数据库函数及存储过程的效果,毕竟LINQ只是一个提高开发效率的方法,一种清新简化的查询语言。

综合以上LINQ目前的现状弊端,大家可想,LINQ只能适应中小型的项目开发使用,但是如果你能非常熟练的使用LINQ的查询语句及Lambda表达式的话,那么你的中小型项目开发将是非常有效率及安全性很高的,毕竟LINQ基于2.0的泛型,而且LINQ的优势同样与它的不足一样惹眼,我特别喜欢LINQ的Lambda表达式,那简直是程序员的艺术,假使,我是说假使有那么一天,LINQ能将我们写的Lambda表达式直接编译成存储过程,类似if exist() drop之类的话,那就无敌了。LINQ前景不是很乐观啊,让我们一起期待.Net4.0吧。

【编辑推荐】

  1. Linq匿名类型简单概述
  2. Linq随机读取数据浅析
  3. Linq Lambda表达式全面分析
  4. Linq扩展方法简单分析
  5. 初探Linq局部变量类型
责任编辑:佚名 来源: 百度空间
相关推荐

2013-05-13 11:31:58

NFC

2011-04-12 11:18:42

FTTH光纤

2009-04-28 19:19:40

LinuxApache带宽控制

2012-04-27 09:11:24

Android系统

2009-09-24 08:42:17

Windows 7兼容性

2021-08-25 07:13:30

芯片电子产品

2009-01-03 11:30:51

2010-07-23 17:05:50

TD-LTE

2015-07-07 10:14:40

2011-02-09 14:34:04

2018-10-15 17:31:00

网络安全病毒网络攻击

2012-05-18 08:54:42

移动设备业务企业

2020-08-18 09:58:34

网络弹性灾难恢复网络攻击

2014-09-23 17:21:57

2017-08-08 19:29:38

2012-05-09 10:23:11

手机

2015-11-28 19:16:34

2012-04-24 23:43:02

诺基亚

2017-09-25 08:58:19

技术投资人忠告

2023-02-17 08:00:00

应用安全首席信息官
点赞
收藏

51CTO技术栈公众号