第Ⅰ部分 LIN Q项目简介 3
第1章 LINQ项目 3
1.1 LINQ概述 7
1.2标准查询操作符 10
1.3 LINQ to XML概述 11
1.4 LINQ to SQL概述 13
1.5本章小结 15
第2章 Visual Studio 2008简介 16
2.1 Visual Studio 2008 16
2.2语言相关的LINQ特性 20
2.2.1查询表达式 20
2.2.2隐式的类型化变量 21
2.2.3匿名类型 21
2.2.4对象和集合初始化器 22
2.2.5扩展方法 24
2.2.6 Lambda表达式 27
2.3本章小结 28
第3章 LINQ查询 29
3.1 LINQ查询简介 29
3.1.1获取数据源 30
3.1.2创建查询 31
3.1.3执行查询 31
3.1.4与SQL语法的比较 33
3.1.5查询的概念 35
3.1.6 var与IEnumerable的比较 38
3.1.7常见的查询术语 39
3.1.8 IQueryable和Iqueryable(OfT)接口 40
3.2查询语法和方法语法的区别 40
3.3使用查询语法和方法语法 42
3.4本章小结 48
第4章 LINQ标准查询操作符 49
4.1概述 49
4.2标准查询操作符 50
4.2.1投影操作符 51
4.2.2限制操作符 52
4.2.3排序操作符 52
4.2.4联接操作符 55
4.2.5分组操作符 58
4.2.6串联操作符 59
4.2.7聚合操作符 59
4.2.8集合操作符 63
4.2.9生成操作符 66
4.2.10转换操作符 69
4.2.11元素操作符 73
4.2.12相等操作符 77
4.2.13量词操作符 78
4.2.14分割操作符 80
4.3使用查询操作符 83
4.4本章小结 86
第Ⅱ部分 LINQ to XML 89
第5章 理解LINQ to XML 89
5.1 LINQ to XML概述 89
5.2 LINQ to XML编程基础 90
5.2.1 LINQ to XML类 90
5.2.2 XElement类 92
5.2.3 XAttbute类 96
5.2.4 XDocument类 98
5.3 LINQ to XML编程概念 100
5.3.1处理已有的XML 100
5.3.2使用LINQ to XML保存XML 102
5.3.3创建XML 103
5.3.4遍历XML 104
5.3.5操纵XML 105
5.3.6处理属性 110
5.4 LINQ to XML与其他XML技术的比较 113
5.4.1 LINQ to XML与DOM的比较 113
5.4.2 LINQ to XML与XmIReader的比较 113
5.4.3 LINQ to XML与XSLT的比较 114
5.4.4 LINQ to XML与MSXML的比较 114
5.5本章小结 114
第6章 LINQ to XML编程 115
6.1创建树 115
6.1.1 C#中树的创建 115
6.1.2 Visual Basic中树的创建 120
6.2使用文本填充XML树 121
6.3查询XML树 123
6.4修改和重构XML树 129
6.5序列化XML树 131
6.6名称空间 133
6.7本章小结 135
第7章 LINQ to XML和其他LINQ数据模型 136
7.1 SQL to XML 136
7.2 XML to SQL 140
7.2.1插入 140
7.2.2更新 141
7.3本章小结 143
第8章 LINQ to XML编程高级主题 144
8.1 LINQ to XML函数构造 144
8.2 LINQ to XML批注 148
8.3 LINQ to XML轴 151
8.3.1 Ancestors 152
8.3.2 Descendants 153
8.3.3 AncestorsAndSelf 155
8.3.4 DescendantsAndSelf 155
8.3.5 ElementsAfterSelf和ElementsBeforeSelf 156
8.4 LINQ to XML事件 158
8.4.1 Changing事件 158
8.4.2 Changed事件 160
8.5流式处理XML文档 161
8.6流式处理大型XML文档 167
8.7本章小结 167
第9章 LINQ to XML和Visual Basic.NET 169
9.1创建XML 169
9.1.1 XML文本简介 169
9.1.2表达式 172
9.1.3嵌入查询 173
9.1.4理解Visual Basic XML文本中的空白 174
9.2访问XML 175
9.3加载XML 178
9.4使用Parse方法操纵XML 179
9.5 Visual Basic下LINQ to XML的示例 180
9.6本章小结 184
第Ⅲ部分 LINQ to SQL 187
第10章LINQ to SQL概述 187
10.1理解LINQ to SQL 187
10.2 LINQ to SQL对象模型 189
10.3基于属性的映射 189
10.3.1使用Database属性 190
10.3.2映射表 190
10.3.3映射列 191
10.3.4映射关系 193
10.3.5映射存储过程 194
10.3.6映射函数 195
10.3.7使用Parameter属性 195
10.4关系数据基础 196
10.4.1主键 196
10.4.2外键 198
10.5本章小结 201
第11章 LINQ to SQL查询 202
11.1查询的概念 202
11.2 DataContext 204
11.3强类型的DataContext 205
11.4数据操纵 206
11.4.1插入 207
11.4.2更新 209
11.4.3删除 209
11.5处理对象 210
11.5.1插入 210
11.5.2更新 211
11.5.3删除 211
11.6存储过程和用户自定义函数 211
11.6.1映射并调用存储过程 212
11.6.2映射并调用用户自定义函数 225
11.7本章小结 228
第12章 高级查询概念 229
12.1数据库关系 229
12.1.1表示关系 229
12.1.2查询 233
12.2已编译查询 234
12.3远程查询执行与本地查询执行的比较 235
12.3.1远程执行 235
12.3.2本地执行 235
12.4延迟数据加载与立即数据加载的比较 236
12.4.1 DataShape类 237
12.4.2关闭延迟加载 238
12.5组合键 238
12.6只读数据 239
12.7本章小结 239
第13章 实体类 240
13.1跟踪实体变更 240
13.2提交实体类变更 241
13.3并发变更和并发冲突 246
13.3.1 UpdateCheck特性 246
13.3.2 ConflictMode枚举 247
13.3.3 ChangeConflictException类 247
13.3.4 RefreshMode枚举 247
13.4使用事务 248
13.5本章小结 251
第14章 LINQ to DataSet 252
14.1 LINQ to DataSet概述 252
14.2创建LINQ to DataSet项目 253
14.3向DataSet中加载数据 254
14.4 LINQ to DataSet查询 255
14.4.1单表查询 256
14.4.2多表查询 257
14.4.3类型化DataSet 259
14.5数据绑定 260
14.6比较DataRow 261
14.7本章小结 264
第15章 LINQ to SQL高级论题 266
15.1对象关系设计器 266
15.1.1创建和打开O/R Designer 266
15.1.2创建/配置DataContext 267
15.1.3为表/视图映射创建实体类 269
15.1.4存储过程和函数的DataContext映射 270
15.1.5通过调用存储过程实现使用实体类保存数据 271
15.2扩展O/R设计器生成的代码 272
15.3 O/R设计器中类的复数 273
15.4 SQL Metal 274
15.5外部映射 277
15.6多层操作 280
15.7 N层最佳实践 281
15.7.1乐观并发 281
15.7.2插入/删除 282
15.7.3 N层示例 282
15.8设计器示例 283
15.9本章小结 287
第Ⅳ部分 附录 291
附录A 案例分析 291
附录B LINQ to Entities: ADO.NET Entity Framework 306
附录C LINQ to XSD 320