对linq知识的介绍还是不错的
Linq的知识一直都没有系统的学习过。只知道其语言格式大概类似Sql语句,可以用from, where, orderby, select等查询关键字结合起来使用,也略知其执行的结果是一个序列集合。对于其它的细节了解不多,因为目前Entityframework的应用越来越广泛了,大量的MVC实例都基本以其作为与数据库交互的接口,所以补上Linq的基础知识也越来越显得必需了。经过半个月的学习,现将简评书写如下:
一,和其它书籍类似,书本的开始演示了几个简单的Linq运用例子。然后介绍了.NET Framework 为引入Linq所必需要的语言支持。比如:隐式类型变量;对象和集合初始化;Lambda表达式;扩展方法以及匿名类型。所有这些特性为Linq方法提供了技术支撑。接下又介绍了一个Linq块的组成,分别介绍了Linq的延迟执行,查询操作符与查询表达式关系,以及表达式树及其构建等等。重点是对扩展方法与Lambda表达式的掌握。
二,在简要的介绍了Linq知识后,该书又分块详细介绍了Linq2Objects, Linq2Sql, Linq2Xml 技术。在 Linq2Objects 中详细介绍了一些查询操作符,比如 Where, Select, Skip, Take, Join, OrderBy 等等多种类型的操作符的运用。在 Linq2Objects 时需要考虑语句的性能,要注意立即执行带来的性能影响,注意表达式的执行效率等等。文中的例子还是非常有启发的作用。在Linq2Sql中介绍了数据库表到代码的 Mapping, 及一些生成Mapping的工具。Linq2Sql 与 Linq2Objects 的不同是 Linq2Sql 操作的是 IQueryable<T> 对象,查询表达式对应的表达式树会最终转化成数据库中可以直接执行的SQL语句。可以运用Linq表达式进行查找,更新,删除等操作。要注意Linq操作中的并发操作中可能产生的数据冲突,需要了解相应处理冲突的方法。文中介绍了如何在Linq表达式调用存储过程或者数据库函数来得到相应的结果。最后介绍了一些改善Linq2Sql中的业务逻辑层的方法与思路,比如扩展实体类,分部方法等等。在我看来Linq2Entity会让这部分知识变得鸡肋,接下来学习下EntityFramework的相关知识显得更符合现在的应用。最后作者详细介绍了Linq2XML的相关知识。从Linq2XML的设计原则,操作对象,简单的XML操作API(创建,添加,删除,属性,保存),再到Linq2XML的核心方法(Element(s),Attribte,Descendants,Ancestors等)在查询表达式中的应用,并在此基础上进行标准查询操作(投影,过滤,排序,及分组等等)。Linq2XML为操作XML文件提供了极大的便利,自我认为这是本书最精彩,也是印象最深的部分。
三,最后部分介绍了Linq的自扩展,及所有上述技术在具体例子中的应用。阅读示例源码能帮你更好的掌握这些知识。
根据书本的说明,Linq技术其实是一个工具,只是编译器的增强,对CLR并没有多少改变。Linq技术在很大程度上减少了程序员的代码量,增加了代码的阅读性。当然,我们也了解到,正因为这是个工具,所以某些操作会牺牲系统的一点性能。因此,我们需要根据现实实际来决定我们选用Linq技术是值得的,在具体的实践中选择恰当的方法来处理我们的应用。相信学好了Linq对接下来学习EntityFramework也会有很大的帮助。
一,和其它书籍类似,书本的开始演示了几个简单的Linq运用例子。然后介绍了.NET Framework 为引入Linq所必需要的语言支持。比如:隐式类型变量;对象和集合初始化;Lambda表达式;扩展方法以及匿名类型。所有这些特性为Linq方法提供了技术支撑。接下又介绍了一个Linq块的组成,分别介绍了Linq的延迟执行,查询操作符与查询表达式关系,以及表达式树及其构建等等。重点是对扩展方法与Lambda表达式的掌握。
二,在简要的介绍了Linq知识后,该书又分块详细介绍了Linq2Objects, Linq2Sql, Linq2Xml 技术。在 Linq2Objects 中详细介绍了一些查询操作符,比如 Where, Select, Skip, Take, Join, OrderBy 等等多种类型的操作符的运用。在 Linq2Objects 时需要考虑语句的性能,要注意立即执行带来的性能影响,注意表达式的执行效率等等。文中的例子还是非常有启发的作用。在Linq2Sql中介绍了数据库表到代码的 Mapping, 及一些生成Mapping的工具。Linq2Sql 与 Linq2Objects 的不同是 Linq2Sql 操作的是 IQueryable<T> 对象,查询表达式对应的表达式树会最终转化成数据库中可以直接执行的SQL语句。可以运用Linq表达式进行查找,更新,删除等操作。要注意Linq操作中的并发操作中可能产生的数据冲突,需要了解相应处理冲突的方法。文中介绍了如何在Linq表达式调用存储过程或者数据库函数来得到相应的结果。最后介绍了一些改善Linq2Sql中的业务逻辑层的方法与思路,比如扩展实体类,分部方法等等。在我看来Linq2Entity会让这部分知识变得鸡肋,接下来学习下EntityFramework的相关知识显得更符合现在的应用。最后作者详细介绍了Linq2XML的相关知识。从Linq2XML的设计原则,操作对象,简单的XML操作API(创建,添加,删除,属性,保存),再到Linq2XML的核心方法(Element(s),Attribte,Descendants,Ancestors等)在查询表达式中的应用,并在此基础上进行标准查询操作(投影,过滤,排序,及分组等等)。Linq2XML为操作XML文件提供了极大的便利,自我认为这是本书最精彩,也是印象最深的部分。
三,最后部分介绍了Linq的自扩展,及所有上述技术在具体例子中的应用。阅读示例源码能帮你更好的掌握这些知识。
根据书本的说明,Linq技术其实是一个工具,只是编译器的增强,对CLR并没有多少改变。Linq技术在很大程度上减少了程序员的代码量,增加了代码的阅读性。当然,我们也了解到,正因为这是个工具,所以某些操作会牺牲系统的一点性能。因此,我们需要根据现实实际来决定我们选用Linq技术是值得的,在具体的实践中选择恰当的方法来处理我们的应用。相信学好了Linq对接下来学习EntityFramework也会有很大的帮助。
有关键情节透露