背景:
在看完MVC之后发现里面多次提到了linq,所以又不得不再次了解linq。先百度百科了一下,里面内容介绍挺详细,其中给我印象最深的就是上面写的优点。因为看完之后给了我学习的自信。引用如下:
使用优点:
定义:
linq,是language IntegratedQuery语言集成查询。linq出现,主要解决的问题是:面向对象与数据访问两个领域长期分裂。
编程语言中的数据类型与数据库中的数据类型形成两套体系(这个在三层中访问数据库中,体会很深刻,没少为这个报错)
sql编码体验落后(在.net中智能提示的功能很强大,相信机房重构之后的童鞋都应该体会很深,但是sql从来不会只能提示)
sql和XML都有各自的查询语言,而对象没有自己的查询语言。(一般对象是用点“ .”后面来访问属性)
组成:
简单介绍一下如图框架:linq主要是连接各种高级语言和对象、关系、XML的一座桥梁。
linq主要包含以下三个部分:
linq to objects主要负责对象的查询
linq to XML主要负责对象XML的查询
linq to ADO.Net主要负责数据库的查询
linq to sql 对于sql的查询
linq to DataSet对于数据集的查询
linq to Entities对于实体的查询
linq的主要功能是查询功能,但是也可以进行增删改。
扩展方法
什么是扩展方法:扩展方法是对现有的类提供额外方法的扩展,是一种特殊的静态方法,因此必须写在静态类里面。但是因为扩展方法的优先级低于同名的类的方法,并且扩展方法只在特定的命名空间内有效,所以除非必须否则不要滥用扩展方法。为什么介绍扩展方法,是因为linq中的方法绝大部分是扩展方法,linq是基于扩展方法的。
区别于SQO
什么是SQO:SQO(standard Query Operator)标准查询运算符,是一种与linq相对的查询语言是一种比linq更底层的语言。linq语言的优点是便于编译,所以常说linq是给程序员用的语法糖,在.net编辑器中会在编译程序集成中间代码的时候将linq语言自动转化为SQO集合。