- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第13章 语言集成查询-LINQ概要1
第13章 语言集成查询-LINQ;13.1 LINQ概述;13.1.2 LINQ 提供程序 ;(3)LINQ to DataSet
使用LINQ to DataSet提供程序可以查询和更新ADO.NET数据集中的数据。可以将LINQ功能添加到使用数据集的应用程序中,以便简化和扩展对数据集中的数据进行查询、聚合和更新的功能。
(4)LINQ to SQL
使用LINQ to SQL提供程序可以查询和修改SQL Server数据库中的数据。这样就可以轻松地将应用程序的对象模型映射到数据库中的表和对象。
C#通过包含对象关系设计器(O/R 设计器)使LINQ to SQL更加易于使用。此设计器用于在应用程序中创建映射到数据库中的对象的对象模型。;(5)LINQ to Entities
使用 LINQ to Entities 时,LINQ 查询在后台转换为SQL查询并在需要数据的时候执行,即开始枚举结果的时候执行。LINQ to Entities还为获取的所有数据提供变化追踪,也就是说,可以修改查询获得的对象,然后整批同时把更新提交到数据库。
LINQ to DataSet、LINQ to SQL和LINQ to Entities?统称为LINQ to ADO.NET。如图13.1所示给出了LINQ提供程序和LINQ数据源之间的关系。;13.2 LINQ to Objects;1. 获取数据源
数据源是LINQ查询对象。例如,可以定义如下整型数组numbers作为数据源:
int [] numbers=new int[10]{1,2,3,4,5,6,7,8,9,10};;2. 创建查询
创建查询主要是定义查询表达式,查询表达式指定如何从数据源中检索信息,并对其排序、分组和结构化。创建查询的一般格式如下:
var 查询变量=from ? where ? select ?;
其中,查询变量是一个匿名类型的变量,并使用查询表达式对其初始化。from子句指定数据源,where子句指定筛选条件,select子句指定返回元素的类型。;例如:
var numQuery =
from num in numbers
where (num % 2) == 0
select num;
这里numQuery是一个匿名类型的查询变量,查询表达式是从numbers数据源中获取偶数元素。;查询表达式的注意事项如下:;3. 执行查询
在LINQ中,查询变量本身只是存储查询命令,创建查询仅仅声明查询变量,并不执行任何操作,也不返回任何数据,只有执行查询才会执行查询变量中声明的查询操作,并返回结果数据,这称为延迟执行。;例如,以下语句执行前面声明的查询:
foreach (var x in numQuery)
textBox1.Text += x.ToString()+ ;
其结果是在textBox1中显示2 4 6 8 10。
它的执行过程是:foreach循环一次,便从numQuery中取出一个元素。迭代变量?num?保存了返回的序列中的每个值(一次保存一个值)。;13.2.2 LINQ查询子句;2. select子句
在查询表达式中,select子句可以指定将在执行查询时产生值的类型。
该子句的结果将基于前面所有子句的计算结果以及select子句本身中的所有表达式。查询表达式必须以select子句或group子句结束。; LINQ查询返回的对象集合称为源系列,源系列是结构化的数据,通常是由一个或多个元素构成,每个元素由一个或多个字段构成。
通过select子句指定希望在源系列中出现的字段,也可以选择所有源系列字段的子集。选择源系列字段子集有两种主要方法:;3. where子句
where子句指定查询的筛选条件。筛选指将结果集限制为只包含那些满足指定条件的元素的操作,它又称为选择。where子句基本格式如下:
where 条件表达式
其中,“条件表达式”是必选项,它确定是否在输出结果中包含源系列中当前项的值。;4. let子句
在查询表达式中,存储子表达式的结果有时很有用,这样可以在随后的子句中使用。可以使用let子句完成这一工作,该子句可以创建一个新的迭代变量,并且用提供的表达式的结果初始化该变量。
一旦用值初始化了该迭代变量,它就不能用于存储其他值。但如果该迭代变量存储的是可查询的类型,则可以对其进行查询。let子句基本格式如下:
let 迭代变量 = 表达式;例
文档评论(0)