微信扫一扫,移动浏览光盘

简介

  作为.NET上连接编程语言和数据库、内存对象、XML等各种类型数据之间的桥梁,LINQ引入了一种处理数据的全新理念,将查询无缝集成至开发语言之上。本书第一部分介绍了LINQ技术及C#和VB为此提供的新语言特性,第二、三、四部分详细介绍了LINQ的三大主要功能LINQ to Objects、LINQ to SQL、LINQ to XML,第五部分研究了LINQ的可扩展性、在应用程序中使用各种LINQ功能的方法以及LINQ to DataSet。    本书适合于使用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将linqto 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


已确认勘误

次印刷

页码 勘误内容 提交人 修订印次

LINQ in action
    • 名称
    • 类型
    • 大小

    光盘服务联系方式: 020-38250260    客服QQ:4006604884

    意见反馈

    14:15

    关闭

    云图客服:

    尊敬的用户,您好!您有任何提议或者建议都可以在此提出来,我们会谦虚地接受任何意见。

    或者您是想咨询:

    用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问

    Video Player
    ×
    Audio Player
    ×
    pdf Player
    ×
    Current View

    看过该图书的还喜欢

    some pictures

    解忧杂货店

    东野圭吾 (作者), 李盈春 (译者)

    loading icon