微软MVP呕心沥血之作:LINQ实战

LINQ实战



【作  者】(法)Fabrice Marguerie;(美) Steve Eichert;(美)Jim Wooley [同作者作品] [作译者介绍]
【译  者】 陈黎夫[同译者作品]
【丛 书 名】 图灵程序设计丛书
【出 版 社】 人民邮电出版社 【书 号】 9787115208514
【上架时间】 2009-6-19
【出版日期】 2009 年8月 【开 本】 16开

样章免费试读:http://www.china-pub.com/195668

【编辑推荐】
微软MVP呕心沥血之作,LINQ圣经.
深入全面,引人入胜..
丰富实例,兼顾C#和VB.NET语言...

【内容简介】
LINQ是微软.NET软件开发平台上的一项突破性创新技术,它在面向对象语言与各种数据源之间架设了一座高效的桥梁,大大降低了软件开发的复杂度。.

本书内容全面详细,几乎涵盖了所有技术要点。对于LINQ提供的各种特性,从客观的角度解释其优缺点,使读者能够根据具体情况做出选择。此外,还讲解了 LINQ的可扩展性,可用于更高级的数据处理。全书组织结构合理,行文流畅,使读者如同置身于一次技术旅行。在深入透彻的讲解中恰到好处地运用实例,对同一主题分别给出C#和VB.NET实例,并在实例的关键点给出注释,真正达到了化繁为简的境界。..

本书适合于使用C# 和VB.NET 的软件开发者。

【目 录】
第一部分 从这里开始
第1章 LINQ简介2
1.1 LINQ是什么2
1.1.1 概览3
1.1.2 LINQ的功能3
1.1.3 作为语言扩展的LINQ4
1.2 为什么需要LINQ6
1.2.1 常见问题6
1.2.2 解决理念上的失调8
1.2.3 LINQ给出解决方案12
1.3 LINQ的设计目标及起源13
1.3.1 LINQ项目的设计目标13
1.3.2 一点历史14
1.4 LINQ to Objects初步:查询内存中的
集合15
1.4.1 先决条件15
1.4.2 Hello LINQ to Objects17
1.5 LINQ to XML初步:查询XML文档20
1.5.1 为什么需要LINQ to XML20
1.5.2 Hello LINQ to XML22
1.6 LINQ to SQL初步:查询关系型
数据库26
1.6.1 LINQ to SQL功能概览26
1.6.2 Hello LINQ to SQL26
1.6.3 进一步了解LINQ to SQL30
1.7 小结30
第2章 C#和VB语言的增强特性31
2.1 新语言的增强特性一瞥31
2.1.1 列出当前正在运行的所有进程32
2.1.2 将返回结果封装成类33
2.2 隐式类型局部变量34
2.2.1 语法35
2.2.2 使用隐式类型局部变量改进实例
程序35
2.3 对象和集合的初始化器37
2.3.1 引入对象初始化器的动机37
2.3.2 集合初始化器38
2.3.3 用对象初始化器改进实例程序39
2.4 Lambda表达式40
2.4.1 委托回顾40
2.4.2 匿名方法42
2.4.3 Lambda表达式介绍42
2.5 扩展方法47
2.5.1 创建扩展方法的示例47
2.5.2 更多使用LINQ标准查询操作符
的例子50
2.5.3 将扩展方法引入到实例程序中51
2.5.4 注意事项52
2.6 匿名类型54
2.6.1 使用匿名类型组合数据55
2.6.2 没有名字的类型也是类型55
2.6.3 使用匿名类型改进实例程序56
2.6.4 匿名类型的限制57
2.7 小结58
第3章 LINQ构建块61
3.1 LINQ对.NET的扩展61
3.1.1 语言扩展回顾61
3.1.2 构成LINQ基础的核心元素62
3.2 序列63
3.2.1 IEnumerable<T>接口63
3.2.2 迭代器回顾64
3.2.3 延迟查询执行66
3.3 查询操作符69
3.3.1 查询操作符是什么69
3.3.2 标准查询操作符71
3.4 查询表达式72
3.4.1 查询表达式是什么72
3.4.2 编写查询表达式73
3.4.3 标准查询操作符与查询表达式的
关系75
3.4.4 限制76
3.5 表达式树78
3.5.1 Lambda表达式回顾78
3.5.2 表达式树是什么78
3.5.3 IQueryable,另一种实现延迟
查询执行的方法81
3.6 LINQ的程序集以及命名空间81
3.7 小结83
第二部分 查询内存中的对象
第4章 熟悉LINQ to Objects86
4.1 实例程序简介86
4.1.1 程序目标86
4.1.2 程序功能87
4.1.3 业务逻辑实体87
4.1.4 数据库架构87
4.1.5 示例数据89
4.2 用LINQ操作内存中的集合90
4.2.1 能够查询什么90
4.2.2 支持的操作94
4.3 在ASP.NET和Windows Forms中
使用LINQ95
4.3.1 Web应用程序中的数据绑定95
4.3.2 Windows Forms应用程序中的
数据绑定100
4.4 常用的标准查询操作符103
4.4.1 约束操作符Where104
4.4.2 投影操作符105
4.4.3 Distinct操作符107
4.4.4 转换操作符108
4.4.5 聚合操作符109
4.5 用不同的方式显示内存中的集合110
4.5.1 排序110
4.5.2 嵌套查询111
4.5.3 分组113
4.5.4 使用连接114
4.5.5 分区117
4.6 小结121
第5章 超越基本的内存数据查询122
5.1 常见使用场景122
5.1.1 查询非泛型集合123
5.1.2 按照多个条件分组125
5.1.3 动态查询127
5.1.4 LINQ to Text Files135
5.2 设计模式137
5.2.1 函数式创建模式138
5.2.2 ForEach模式140
5.3 性能分析142
5.3.1 选择恰当的流操作方式142
5.3.2 当心立即执行144
5.3.3 LINQ to Objects会降低代码的
性能吗146
5.3.4 使用LINQ to Objects的代价149
5.3.5 性能和简洁:鱼和熊掌不可
兼得吗151
5.4 小结152
第三部分 查询关系型数据
第6章 LINQ to SQL入门156
6.1 走入LINQ to SQL157
6.1.1 创建对象映射159
6.1.2 设定DataContext161
6.2 通过LINQ to SQL读取数据161
6.3 继续改进查询165
6.3.1 过滤165
6.3.2 排序和分组167
6.3.3 聚集168
6.3.4 连接169
6.4 操作有层级关系的对象171
6.5 数据加载的时机以及为何要关心这些174
6.5.1 延迟加载174
6.5.2 立即加载详细信息175
6.6 更新数据177
6.7 小结179
第7章 揭开LINQ to SQL的本质180
7.1 对象与关系数据的映射180
7.1.1 通过在类中添加属性181
7.1.2 使用外部XML文件实现映射185
7.1.3 使用SqlMetal工具186
7.1.4 LINQ to SQL设计器188
7.2 将查询表达式转换为SQL190
7.2.1 IQueryable接口190
7.2.2 表达式树191
7.3 业务实体的生命周期193
7.3.1 跟踪变化195
7.3.2 提交变化196
7.3.3 操作离线数据198
7.4 小结200
第8章 LINQ to SQL高级特性201
8.1 处理并发修改201
8.1.1 悲观式并发201
8.1.2 乐观式并发202
8.1.3 处理并发异常204
8.1.4 使用事务解决冲突207
8.2 高级的数据库功能208
8.2.1 使用SQL语句直接得到结果
对象209
8.2.2 使用存储过程210
8.2.3 用户自定义函数217
8.3 改进业务逻辑层220
8.3.1 预编译的查询220
8.3.2 使用部分类实现自定义业务
逻辑221
8.3.3 使用部分方法223
8.3.4 使用对象继承225
8.4 LINQ to Entities简介229
8.5 小结231
第四部分 操作XML
第9章 LINQ to XML入门234
9.1 什么是XML API234
9.2 为什么需要另外一种XML编程API235
9.3 LINQ to XML设计原则236
9.3.1 核心概念:函数式创建238
9.3.2 核心概念:上下文无关的XML
创建过程238
9.3.3 核心概念:简化了的名称239
9.4 LINQ to XML中相关类的继承体系241
9.5 在LINQ中操作XML243
9.5.1 加载XML243
9.5.2 解析XML245
9.5.3 创建XML246
9.5.4 使用Visual Basic XML字面量
创建XML249
9.5.5 创建XML文档251
9.5.6 向XML中添加内容254
9.5.7 从XML中移除内容255
9.5.8 更新XML的内容256
9.5.9 操作属性258
9.5.10 保存XML258
9.6 小结259
第10章 使用LINQ to XML查询并
转换XML260
10.1 LINQ to XML轴方法261
10.1.1 Element262
10.1.2 Attribute263
10.1.3 Elements264
10.1.4 Descendants264
10.1.5 Ancestors267
10.1.6 ElementsAfterSelf、Nodes-
AfterSelf、ElementsBefore-
Self和NodesBeforeSelf
方法268
10.1.7 Visual Basic的XML轴属性269
10.2 标准查询操作符271
10.2.1 使用Select进行投影273
10.2.2 使用Where实现过滤274
10.2.3 排序和分组275
10.3 使用XPath查询LINQ to XML对象278
10.4 转换XML279
10.4.1 LINQ to XML转换279
10.4.2 使用XSLT转换LINQ to XML
对象282
10.5 小结284
第11章 LINQ to XML常见场景285
11.1 根据XML构建对象285
11.1.1 目标286
11.1.2 实现287
11.2 根据对象创建XML290
11.2.1 目标290
11.2.2 实现291
11.3 根据数据库中的数据创建XML295
11.3.1 目标296
11.3.2 实现297
11.4 过滤并混合从数据库以及XML
中得到的数据301
11.4.1 目标302
11.4.2 实现302
11.5 读取XML并更新数据库306
11.5.1 目标306
11.5.2 实现307
11.6 将文本文件转换为XML319
11.6.1 目标319
11.6.2 实现320
11.7 小结322
第五部分 LINQ无处不在
第12章 扩展LINQ324
12.1 探寻LINQ的扩展机制324
12.1.1 LINQ各个特性是如何实现的325
12.1.2 自定义LINQ扩展能够实现
什么326
12.2 创建自定义查询操作符327
12.2.1 改进标准查询操作符327
12.2.2 辅助或领域相关的查询
操作符330
12.3 基本查询操作符的自定义实现334
12.3.1 回顾查询翻译机制334
12.3.2 查询表达式模式的规范335
12.3.3 示例1:跟踪标准查询操作符
的执行过程337
12.3.4 限制:查询表达式冲突338
12.3.5 示例2:非泛型的、领域相关
的操作符340
12.3.6 示例3:非序列的查询操作符342
12.4 查询Web服务:LINQ to Amazon343
12.4.1 LINQ to Amazon介绍344
12.4.2 需求345
12.4.3 实现346
12.5 IQueryable和IQueryProvider:
LINQ to Amazon高级版本352
12.5.1 IQueryable和IQueryProvider
接口353
12.5.2 实现356
12.5.3 究竟发生了什么357
12.6 小结358
第13章 应用程序各层中的LINQ359
13.1 LinqBooks应用程序概览359
13.1.1 功能359
13.1.2 程序UI概览360
13.1.3 数据模型362
13.2 LINQ to SQL及数据访问层362
13.2.1 回顾传统的三层架构362
13.2.2 用专门的数据访问层还是
LINQ to SQL364
13.2.3 LinqBooks 中对LINQ to SQL
的使用368
13.3 LINQ to XML的使用374
13.3.1 从Amazon中导入数据374
13.3.2 生成RSS376
13.4 LINQ to DataSet的使用377
13.5 使用LINQ to Objects380
13.6 可扩展性380
13.6.1 自定义查询操作符380
13.6.2 创建并使用自定义LINQ
提供器381
13.7 展望未来381
13.7.1 自定义LINQ功能382
13.7.2 LINQ to XSD:强类型的LINQ
to XML382
13.7.3 PLINQ:支持并行计算的
LINQ383
13.7.4 LINQ to Entities,ADO.NET
Entity Framework的LINQ
接口383
13.8 小结384
第14章 使用LINQ操作DataSet385
14.1 LINQ to DataSet概览385
14.2 DataSet回顾386
14.2.1 DataSet使用场景及功能386
14.2.2 DataSet是什么387
14.2.3 Visual Studio 2008和.NET 3.5
为支持LINQ to DataSet进行
的改进389
14.3 查询弱类型DataSet390
14.3.1 为DataSet加载数据390
14.3.2 不使用LINQ查询DataSet394
14.3.3 使用LINQ to DataSet查询
弱类型DataSet395
14.4 查询强类型DataSet399
14.4.1 生成强类型的DataSet400
14.4.2 为强类型DataSet加载数据402
14.4.3 使用LINQ to DataSet查询
强类型DataSet404
14.5 将LINQ to DataSet查询结果绑定至
UI控件406
14.5.1 使用CopyToDataTable将LINQ
to DataSet查询结果复制到
DataTable406
14.5.2 使用AsDataView实现双向
数据绑定408
14.6 在LINQ to DataSet中使用查询
操作符410
14.6.1 用于DataRow的Field<T>和
SetField<T>操作符410
14.6.2 集合操作符以及用
DataRowComparer比较
DataRow411
14.7 小结412
附录 标准查询操作符414

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值