2. 优点:
- linq只是语言的扩展,把程序语言直接编译为数据库的原生查询语言(比通用的SQL更深入到数据库引擎内部),这是趋势。已经达到的实际应用,在.Net领域中LINQ思想不是NHibernate思想可比的。。
注意:
nhibernate 2.1 开始加入LINQ的支持,Linq for nhibernate。 - Linq提供了不同数据源的抽象层,所以可以使用相同的语法访问不同的数据源(只要该数据源有提供程序即可)
注意:
微软只提供了SQLServer的provider,其他数据库要么用第三方provider,要么用开源的provider。)也就是说,使用linq,在数据库移植时候,会有一定风险。 - Linq为底层的数据存储提供了一个强类型化的界面,可以把底层的数据作为对象来访问。
- Linq 语句是在编译期间就做检查的。而不是运行时检查。这样,那里出了问题,可以及时更改,而不是到了运行时才发现问题。
- Linq操作的数据更抽象:可以是数据库对象、实体对象、xml、数组和其他几乎是任意的数据形式。后几个是nhibernate难触及到的。
- Linq语法级别的数据操作功能,简单、方便、易学。
- VS开发环境对Linq更好的支持。
- Linq数据操作效率还是比较高的(sqlserver),都是微软自己的东西,应该不会有大问题。
3. 使用Linq的一些问题:
1,使用linq,需要协调好新旧技术的关系,对团队协调有影响。
2,分散了新人学习SQL,正则的精力,尤其是对SQL基本功的练习。
3,Linq推广程度还不足,不能达到SQL的地步,只会Linq会有风险。
4,不能代替高性能计算。
针对以上问题,采取的态度应该是:
1,确认团队80%以上人员熟悉Linq再做架构修改,不要一下子过渡的太急噪,但也要建议大家自学或互相学习Linq应用。
2,新人各种技术都要学习,不可以只学Linq, 忽视了别的技术。
3,打好算法与数据结构基础,遇到性能瓶颈,可以换一种算法来解决。

浙公网安备 33010602011771号