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

2023-10-30 01:59

本文主要是介绍微软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 作为语言扩展的LINQ 4
1.2 为什么需要LINQ 6
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 Objects 17
1.5 LINQ to XML初步:查询XML文档 20
1.5.1 为什么需要LINQ to XML 20
1.5.2 Hello LINQ to XML 22
1.6 LINQ to SQL初步:查询关系型
数据库 26
1.6.1 LINQ to SQL功能概览 26
1.6.2 Hello LINQ to SQL 26
1.6.3 进一步了解LINQ to SQL 30
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 Objects 86
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中
使用LINQ 95
4.3.1 Web应用程序中的数据绑定 95
4.3.2 Windows Forms应用程序中的
数据绑定 100
4.4 常用的标准查询操作符 103
4.4.1 约束操作符Where 104
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 Files 135
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 SQL 157
6.1.1 创建对象映射 159
6.1.2 设定DataContext 161
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 将查询表达式转换为SQL 190
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 API 234
9.2 为什么需要另外一种XML编程API 235
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中操作XML 243
9.5.1 加载XML 243
9.5.2 解析XML 245
9.5.3 创建XML 246
9.5.4  使用Visual Basic XML字面量
创建XML 249
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  保存XML 258
9.6  小结 259
第10章 使用LINQ to XML查询并
转换XML 260
10.1 LINQ to XML轴方法 261
10.1.1  Element 262
10.1.2  Attribute 263
10.1.3  Elements 264
10.1.4  Descendants 264
10.1.5  Ancestors 267
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  转换XML 279
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  根据对象创建XML 290
11.2.1  目标 290
11.2.2  实现 291
11.3  根据数据库中的数据创建XML 295
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  将文本文件转换为XML 319
11.6.1  目标 319
11.6.2  实现 320
11.7  小结 322
第五部分 LINQ无处不在
第12章 扩展LINQ 324
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 Amazon 343
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章 应用程序各层中的LINQ 359
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 SQL 364
13.2.3  LinqBooks 中对LINQ to SQL
的使用 368
13.3  LINQ to XML的使用 374
13.3.1  从Amazon中导入数据 374
13.3.2  生成RSS 376
13.4  LINQ to DataSet的使用 377
13.5  使用LINQ to Objects 380
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 XML 382
13.7.3  PLINQ:支持并行计算的
LINQ 383
13.7.4  LINQ to Entities,ADO.NET
Entity Framework的LINQ
接口 383
13.8  小结 384
第14章 使用LINQ操作DataSet 385
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  查询弱类型DataSet 390
14.3.1  为DataSet加载数据 390
14.3.2  不使用LINQ查询DataSet 394
14.3.3  使用LINQ to DataSet查询
弱类型DataSet 395
14.4  查询强类型DataSet 399
14.4.1  生成强类型的DataSet 400
14.4.2  为强类型DataSet加载数据 402
14.4.3  使用LINQ to DataSet查询
强类型DataSet 404
14.5  将LINQ to DataSet查询结果绑定至
UI控件 406
14.5.1  使用CopyToDataTable将LINQ
to DataSet查询结果复制到
DataTable 406
14.5.2  使用AsDataView实现双向
数据绑定 408
14.6  在LINQ to DataSet中使用查询
操作符 410
14.6.1  用于DataRow的Field<T>和
SetField<T>操作符 410
14.6.2  集合操作符以及用
DataRowComparer比较
DataRow 411
14.7  小结 412
附录 标准查询操作符 414

转载于:https://www.cnblogs.com/china-pub/archive/2009/06/26/1511557.html

这篇关于微软MVP呕心沥血之作:LINQ实战的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/304870

相关文章

网页解析 lxml 库--实战

lxml库使用流程 lxml 是 Python 的第三方解析库,完全使用 Python 语言编写,它对 XPath表达式提供了良好的支 持,因此能够了高效地解析 HTML/XML 文档。本节讲解如何通过 lxml 库解析 HTML 文档。 pip install lxml lxm| 库提供了一个 etree 模块,该模块专门用来解析 HTML/XML 文档,下面来介绍一下 lxml 库

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

滚雪球学Java(87):Java事务处理:JDBC的ACID属性与实战技巧!真有两下子!

咦咦咦,各位小可爱,我是你们的好伙伴——bug菌,今天又来给大家普及Java SE啦,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好习惯,别被干货淹没了哦~ 🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,助你一臂之力,带你早日登顶🚀,欢迎大家关注&&收藏!持续更新中,up!up!up!! 环境说明:Windows 10

springboot实战学习(1)(开发模式与环境)

目录 一、实战学习的引言 (1)前后端的大致学习模块 (2)后端 (3)前端 二、开发模式 一、实战学习的引言 (1)前后端的大致学习模块 (2)后端 Validation:做参数校验Mybatis:做数据库的操作Redis:做缓存Junit:单元测试项目部署:springboot项目部署相关的知识 (3)前端 Vite:Vue项目的脚手架Router:路由Pina:状态管理Eleme

微软正式推出 Spartan 斯巴达浏览器

作为用于替代 IE 浏览器的下一代继任者,微软的 Project Spartan 斯巴达浏览器可算是吊足了玩家们的胃口!如今,在最新的 Windows 10 Build 10049 版本起,它终于正式登场了。 斯巴达浏览器搭载了全新的渲染引擎、新的用户界面并集成了 Cortana 语音助手。功能上新增了稍后阅读列表、阅读视图、F12开发者工具、支持网页注释 (手写涂鸦),可以保存到 O

深度学习实战:如何利用CNN实现人脸识别考勤系统

1. 何为CNN及其在人脸识别中的应用 卷积神经网络(CNN)是深度学习中的核心技术之一,擅长处理图像数据。CNN通过卷积层提取图像的局部特征,在人脸识别领域尤其适用。CNN的多个层次可以逐步提取面部的特征,最终实现精确的身份识别。对于考勤系统而言,CNN可以自动从摄像头捕捉的视频流中检测并识别出员工的面部。 我们在该项目中采用了 RetinaFace 模型,它基于CNN的结构实现高效、精准的

项目实战系列三: 家居购项目 第四部分

购物车 🌳购物车🍆显示购物车🍆更改商品数量🍆清空购物车&&删除商品 🌳生成订单 🌳购物车 需求分析 1.会员登陆后, 可以添加家居到购物车 2.完成购物车的设计和实现 3.每添加一个家居,购物车的数量+1, 并显示 程序框架图 1.新建src/com/zzw/furns/entity/CartItem.java, CartItem-家居项模型 /***

Birt报表开发实战

我就截图描述得了,没什么含金量,看图基本明白的。 1.开始 a.创建报表文件 b.数据源配置 c.配置数据集 2.网格报表 拖拉式操作,很方便 3.预览效果 其他报表的操作也基本不难,就不扯了! 2.级联参数 官方视频教程:http://demo.actuate.com/demos/cascade/cascade.html

[yolov5] --- yolov5入门实战「土堆视频」

1 项目介绍及环境配置 下载yolov5 tags 5.0源码,https://github.com/ultralytics/yolov5/tree/v5.0,解压 Pycharm 中创建conda虚拟环境 激活conda虚拟环境 根据作者提供的requirements.txt文件,pip install -r requirements.txt 如果作者没有提供requirement.txt文件