欢迎来到天天文库
浏览记录
ID:32936515
大小:60.46 KB
页数:7页
时间:2019-02-17
《浅谈linq技术原理和应用》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、浅谈LINQ技术原理和应用摘要:LINQ,语言级集成查询(LanguageIntegratedQuery),是一种数据库访问技术,LINQ提供了一条更常的途径,.NetFramework添加一些可以应用于所有信息源的具有多种用途的语法查询特性,这是比向开发语言和运行时添加一些关系数据特性或者类似XML特性更好的方式。关键词:LINQ;查询;ADO.NET;DataSet;SQL中图分类号:TP311.13LINQ是LanguageIntegratedQuery的简称,它是集成在.NET编程语言中的一种特性。已成为编程语言的一个组成部分,在编
2、写程序时可以得到很好的编译时语法检查、丰富的元数据、智能感知、静态类型等强类型语言的好处。并且它同时还使得查询可以方便地对内存中的信息进行查询而不仅仅只是外部数据源。1LINQ的基本语法在.NET框架中,LINQ包含在System.Linq命名空间内,它的基本语法结构为:fromin[where_[orderby][ascending
3、descending][groupbyinto_[joininon.select通常使用var关键字让系统编译器在编译时推断查询变量的类型,也可以使用查询变量的显示类型来指定查询结果类型。from子句用于指定
4、“范围变量”及“数据源”,“范围变量"用于每个数据源对象的引用,数据源可以是各种内存数据。where子句用于查询结果的筛选。orderby子句用于查询结果排序。groupby子句用于查询结果的分组,查询结果的每个元素是一个具有键值对象及根据该键分组的元素列表的对象。在循环访问生成组序列的查询时,必须使用嵌套的循环,外部循环用于循环访问每个组,内部循环用于访问每个组所对应的元素列表的对象。joinon子句用于将指定的键来做关联操作。select子句用于从容器中选择一个序列。1LINQ查询LINQ查询通过提供一种跨各种数据源和数据格式使用数据的
5、一致模型,简化了查询过程。LINQ查询分为对内存对象的查询(LINQtoObject)、对SQLServer数据库的查询(LINQtoSQL)、对ADO.NETDataSet的查询(LINQtoDataSet)、对XML数据的查询(LINQtoXML)以及对由ADO.NET实体框架创建的实体集进行查询(LINQtoEntities)o2.1LINQtoObjectoLINQtoObject直接对任意IEnumerable或IEnumerable集合使用LINQ查询,无须使用中间LINQ提供程序或API。可以使用LINQ查询任何可枚举的集合,
6、如List、Array或Dictionary(TKey,TValue)o2.2LINQtoSQLo在LINQtoSQL中,关系数据库的数据模型映射到开发人员所用的编程语言表示的对象模型。当应用程序运行时,LINQtoSQL会将对象模型中的语言集成查询转换为SQLo然后将它们发送到数据库进行执行。当数据库返回结果时,LINQtoSQL会将它们转换回开发人员所用的编程语言处理的对象。2.3LINQtoDataSeto使用LINQtoDataSet时,使用本质上和查询对象集合相同的语法。毕竟,DataSet其实只是一组DataTable实例,而D
7、ataTable是一组DataRow对象。但是,对DataSet有一个明显的限制一它没有显示强类型数据。相反,要使用Field扩展方法把字段值强制转换为适当的类型。Field由System.Data命名空间中的DataRowExtensions类提供,它扩展所有DataRow对象,并能够以强类型的方式访问字段。2.4LINQtoXMLoLINQtoXML是一种启用了LINQ的内存XML编程接口,可以在・NETFramework编程语言中处理XMLo它将XML文档置于内存中,这一点很像文档对象模型(DOM)o可以查询和修改XML文档。但是,L
8、INQtoXML与DOM不同:它提供一种使用方便,更轻量的对象模型。2.5LINQtoEntitiesoLINQtoEntities是EntityFramework的一部分并且取代LINQtoSQL作为在数据库上使用LINQ的标准机制。EntityFramework是行业领先的对象一关系映射(0RM)系统,可以和多种数据库一起使用,并支持各种灵活、复杂的数据模型。LINQtoEntities作为EntityFramework的一部分,它可以使用EntityFramework数据模型来执行LINQ查询。1LINQ应用实例下面以实例一城市Bot
9、hell街道信息查询说明LINQ查询的应用,部分程序代码如下:DataContextClassesDataContextdb=newDataContextClassesDataC
此文档下载收益归作者所有