LINQ简介和LINQ to SQL语句之Where
2013-06-27 14:08
267 查看
LINQ是LanguageIntegratedQuery的简称,它是集成在.NET编程语言中的一种特性。已成为编程语言的一个组成部分,在编写程序时可以得到很好的编译时语法检查,丰富的元数据,智能感知、静态类型等强类型语言的好处。并且它同时还使得查询可以方便地对内存中的信息进行查询而不仅仅只是外部数据源。
LINQ定义了一组标准查询操作符用于在所有基于.NET平台的编程语言中更加直接地声明跨越、过滤和投射操作的统一方式,标准查询操作符允许查询作用于所有基于IEnumerable<T>接口的源,并且它还允许适合于目标域或技术的第三方特定域操作符来扩大标准查询操作符集,更重要的是,第三方操作符可以用它们自己的提供附加服务的实现来自由地替换标准查询操作符,根据LINQ模式的习俗,这些查询喜欢采用与标准查询操作符相同的语言集成和工具支持。
我们来总体看看LINQ架构
在.NET3.5下,微软为我们提供了一些命名空间
LINQ包括五个部分:LINQtoObjects、LINQtoDataSets、LINQtoSQL、LINQtoEntities、LINQtoXML。
LINQtoSQL全称基于关系数据的.NET语言集成查询,用于以对象形式管理关系数据,并提供了丰富的查询功能。其建立于公共语言类型系统中的基于SQL的模式定义的集成之上,当保持关系型模型表达能力和对底层存储的直接查询评测的性能时,这个集成在关系型数据之上提供强类型。
LINQtoXML在System.Xml.LINQ命名空间下实现对XML的操作。采用高效、易用、内存中的XML工具在宿主编程语言中提供XPath/XQuery功能等。
说了这么多,我们还是用一个简单的实例说明一下LINQ带来的体验。
第一步:建立dbml(DatabaseMarkLanguage。数据库描述语言,是一种xml格式的文档,用来描述数据库)文件,以Northwind数据库为例,上述Customers类被映射成一个表,对应数据库中的Customers表
第二步:创建一个ASP.NET页面,在页面上加入一个GridView控件
第三步:编写代码进行数据绑定
第四步:运行显示结果。
好了,就说这么多吧,大家应该对LINQ有了总体的了解。最后我对LINQ还有一点疑惑,在此提出,请熟悉的朋友来探讨:
LINQ是在ADO.NET之上的,那么在将来它会代替ADO.NET吗?
在大型项目中使用LINQ,它的效率如何呢?
接下来,我们开始从LINQtoSQL语句入手,来全面了解一下LINQ,就从最简单的Where说起吧,这个在编写程序中也最为常用。
说明:与SQL命令中的Where作用相似,都是起到范围限定也就是过滤作用的,而判断条件就是它后面所接的子句。
Where操作包括3种形式,分别为简单形式、关系条件形式、First()形式。下面分别用实例举例下:
再如:筛选1994年或之后雇用的雇员:
筛选出UnitPrice大于10或已停产的产品:
下面这个例子是调用两次where以筛选出UnitPrice大于10且已停产的产品。
简单用法:选择表中的第一个发货方。
元素:选择CustomerID为“BONAP”的单个客户
条件:选择运费大于10.00的订单:
http://kb.cnblogs.com/zt/linq/关于LINQ方方面面的入门、进阶、深入的文章。
LINQ小组:http://space.cnblogs.com/group/linq/学习中遇到什么问题或者疑问提问的好地方。
本资源由/article/6948158.html提供,其中有一系列的专题文章。
LINQ定义了一组标准查询操作符用于在所有基于.NET平台的编程语言中更加直接地声明跨越、过滤和投射操作的统一方式,标准查询操作符允许查询作用于所有基于IEnumerable<T>接口的源,并且它还允许适合于目标域或技术的第三方特定域操作符来扩大标准查询操作符集,更重要的是,第三方操作符可以用它们自己的提供附加服务的实现来自由地替换标准查询操作符,根据LINQ模式的习俗,这些查询喜欢采用与标准查询操作符相同的语言集成和工具支持。
我们来总体看看LINQ架构
在.NET3.5下,微软为我们提供了一些命名空间
LINQ包括五个部分:LINQtoObjects、LINQtoDataSets、LINQtoSQL、LINQtoEntities、LINQtoXML。
LINQtoSQL全称基于关系数据的.NET语言集成查询,用于以对象形式管理关系数据,并提供了丰富的查询功能。其建立于公共语言类型系统中的基于SQL的模式定义的集成之上,当保持关系型模型表达能力和对底层存储的直接查询评测的性能时,这个集成在关系型数据之上提供强类型。
LINQtoXML在System.Xml.LINQ命名空间下实现对XML的操作。采用高效、易用、内存中的XML工具在宿主编程语言中提供XPath/XQuery功能等。
说了这么多,我们还是用一个简单的实例说明一下LINQ带来的体验。
第一步:建立dbml(DatabaseMarkLanguage。数据库描述语言,是一种xml格式的文档,用来描述数据库)文件,以Northwind数据库为例,上述Customers类被映射成一个表,对应数据库中的Customers表
第二步:创建一个ASP.NET页面,在页面上加入一个GridView控件
第三步:编写代码进行数据绑定
第四步:运行显示结果。
好了,就说这么多吧,大家应该对LINQ有了总体的了解。最后我对LINQ还有一点疑惑,在此提出,请熟悉的朋友来探讨:
LINQ是在ADO.NET之上的,那么在将来它会代替ADO.NET吗?
在大型项目中使用LINQ,它的效率如何呢?
接下来,我们开始从LINQtoSQL语句入手,来全面了解一下LINQ,就从最简单的Where说起吧,这个在编写程序中也最为常用。
Where操作
适用场景:实现过滤,查询等功能。说明:与SQL命令中的Where作用相似,都是起到范围限定也就是过滤作用的,而判断条件就是它后面所接的子句。
Where操作包括3种形式,分别为简单形式、关系条件形式、First()形式。下面分别用实例举例下:
1.简单形式:
例如:使用where筛选在伦敦的客户varq= fromcindb.Customers wherec.City=="London" selectc;
再如:筛选1994年或之后雇用的雇员:
varq= fromeindb.Employees wheree.HireDate>=newDateTime(1994,1,1) selecte;
2.关系条件形式:
筛选库存量在订货点水平之下但未断货的产品:varq= frompindb.Products wherep.UnitsInStock<=p.ReorderLevel&&!p.Discontinued selectp;
筛选出UnitPrice大于10或已停产的产品:
varq= frompindb.Products wherep.UnitPrice>10m||p.Discontinued selectp;
下面这个例子是调用两次where以筛选出UnitPrice大于10且已停产的产品。
varq= db.Products.Where(p=>p.UnitPrice>10m).Where(p=>p.Discontinued);
3.First()形式:
返回集合中的一个元素,其实质就是在SQL语句中加TOP(1)。简单用法:选择表中的第一个发货方。
Shippershipper=db.Shippers.First();
元素:选择CustomerID为“BONAP”的单个客户
Customercust=db.Customers.First(c=>c.CustomerID=="BONAP");
条件:选择运费大于10.00的订单:
Orderord=db.Orders.First(o=>o.Freight>10.00M);
LINQ推荐资源
LINQ专题:LINQ小组:
本资源由
相关文章推荐
- LINQ体验(4)——LINQ简介和LINQ to SQL语句之Where
- LINQ体验(4)——LINQ简介和LINQ to SQL语句之Where
- LINQ体验(4)——LINQ简介和LINQ to SQL语句之Where
- LINQ体验(4)——LINQ简介和LINQ to SQL语句之Where
- LINQ体验(4)——LINQ简介和LINQ to SQL语句之Where
- LINQ体验(4)--LINQ简介和LINQ to SQL语句之Where
- LINQ体验(4)——LINQ简介和LINQ to SQL语句之Where
- LINQ体验(4)——LINQ简介和LINQ to SQL语句之Where
- LINQ体验(4)--LINQ简介和LINQ to SQL语句之Where
- LINQ体验(4)——LINQ简介和LINQ to SQL语句之Where
- LINQ体验(4)——LINQ简介和LINQ to SQL语句之Where
- LINQ体验(4)——LINQ简介和LINQ to SQL语句之Where
- LINQ体验(4)——LINQ简介和LINQ to SQL语句之Where
- LINQ体验(4)——LINQ简介和LINQ to SQL语句之Where
- LINQ to SQL语句(1)之Where
- LINQ to SQL语句(1)之Where
- LINQ to SQL语句(1)之Where
- LINQ to SQL语句之Where
- LINQ to SQL语句(1)之Where
- LINQ to SQL语句(1)之Where