标题：精通LINQ数据访问技术:基于C#
版权信息
书 名: 精通LINQ数据访问技术:基于C#
作　者：侯利军
出版社： 人民邮电出版社
出版时间： 2008
ISBN: 9787115180087
开本： 16
目录1　LINQ基础
第1章　LINQ概述1.1　什么是LINQ　3
1.1.1　查询与LINQ　3
1.1.2　LINQ基本架构　4
1.1.3　LINQ基本组成组件　5
1.1.4　LINQ与ADO.NET　5
1.2　搭建开发环境　6
1.2.1　安装VisualStudio2008　6
1.2.2　配置VisualStudio2008　8
1.3　第一个使用LINQ的Web应用程序　9
1.3.1　创建使用LINQ的Web应用程序　9
1.3.2　使用LINQ查询数据　11
1.3.3　配置与LINQ相关的程序集　12
1.3.4　运行使用LINQ的Web应用程序　12
1.3.5　IEnumerable和IEnumerableT接口　13
1.3.6　IQueryable和IQueryableT接口　14
1.3.7　与LINQ相关的命名空间　15
1.4　LINQ查询数据优势展现　15
1.4.1　查询集合中的数据　16
1.4.2　查询数据库中的数据　17
1.4.3　查询DataSet对象中的数据　20
1.4.4　查询XML文件　22第2章　LINQ语法基础——C#3.02.1　C#3.0概述　25
2.2　使用var创建隐型局部变量　26
2.3　对象和集合初始化器　28
2.3.1　对象初始化器　28
2.3.2　集合初始化器　30
2.4　创建匿名类型的对象　31
2.5　创建隐型数组　34
2.6　Lambda表达式　34
2.6.1　Lambda表达式的输入参数　34
2.6.2　Lambda表达式的语句　35
2.6.3　查询中的Lambda表达式　35
2.6.4　Lambda表达式转换　36
2.7　查询表达式　36
2.7.1　查询表达式基础　36
2.7.2　查询表达式的基本子句　38
目录2　LINQ查询初步
第3章　LINQ查询概述3.1　准备用于LINQ查询的数据源　41
3.1.1　准备集合类型的数据源　41
3.1.2　准备DataSet类型的数据源　42
3.1.3　准备SQLServer数据库类型的数据源　43
3.1.4　准备XML类型的数据源　44
3.2　创建LINQ查询表达式　44
3.2.1　创建查询集合类型的查询表达式　44
3.2.2　创建查询DataSet类型的查询表达式　45
3.2.3　创建查询SQLServer数据库类型的查询表达式　45
3.2.4　创建查询XML类型的查询表达式　45
3.3　执行LINQ查询　46
第4章　LINQ查询子句4.1　LINQ查询子句概述　47
4.2　基本子句　48
4.2.1　from子句　48
4.2.2　where子句　52
4.2.3　select子句　54
4.2.4　group子句　56
4.2.5　orderby子句　57
4.2.6　into子句　59
4.2.7　join子句　61
4.2.8　let子句　65
第5章　LINQ查询操作5.1　查询操作概述　67
5.2　筛选操作Where　70
5.3　投影操作　71
5.3.1　选择操作Select　71
5.3.2　选择多个序列操作SelectMany　72
5.4　排序操作　73
5.4.1　按主关键字升序排序操作OrderBy　73
5.4.2　按主关键字降序排序操作OrderByDescending　74
5.4.3　按次要关键字升序排序操作ThenBy　75
5.4.4　按次关键字降序排序操作ThenByDescending　77
5.4.5　顺序反转操作Reverse　78
5.5　聚合操作　79
5.5.1　计算元素数量操作Count　79
5.5.2　求和操作Sum　80
5.5.3　最大值操作Max　81
5.5.4　最小值操作Min　82
5.5.5　平均值操作Average　83
5.5.6　聚合计算操作Aggregate　83
5.5.7　计算元素数量操作LongCount　84
5.6　集合操作　85
5.6.1　去掉集合中的重复元素操作Distinct　86
5.6.2　差集操作Except　87
5.6.3　交集操作Intersect　89
5.6.4　并集操作Union　90
5.7　元素操作　91
5.7.1　获取指定元素操作ElementAt　92
5.7.2　获取指定元素或默认值操作ElementAtOrDefault　93
5.7.3　获取第一个元素操作First　93
5.7.4　获取第一个元素或默认值操作FirstOrDefault　94
5.7.5　获取最后一个元素操作Last　95
5.7.6　获取最后一个元素或默认值操作LastOrDefault　96
5.7.7　获取单个元素操作Single　97
5.7.8　获取单个元素或默认值操作SingleOrDefault　97
5.8　数据类型转换操作　98
5.8.1　转换为泛型集合操作AsEnumerable　99
5.8.2　转换为序列操作AsQueryable　100
5.8.3　转换元素数据类型操作Cast　101
5.8.4　筛选指定类型元素操作OfType　101
5.8.5　转换为泛型列表操作ToList　102
5.8.6　转换为数组操作ToArray　103
5.8.7　转换为字典操作ToDicionary　104
5.8.8　转换为一对多字典操作ToLookup　104
5.9　生成操作　105
5.9.1　创建包含默认元素或空值的集合操作DefaultIfEmpty　106
5.9.2　创建空序列操作Empty　107
5.9.3　创建指定范围值的序列操作Range　107
5.9.4　创建重复元素序列的操作Repeat　108
5.10　限定符操作　108
5.10.1　检查序列所有元素是否满足指定条件的操作All　109
5.10.2　检查序列是否存在满足指定条件的操作Any　110
5.10.3　检查序列是否包含指定元素的操作Contains　110
5.11　数据分区操作　111
5.11.1　跳过指定元素的操作Skip　112
5.11.2　跳过满足指定条件的元素的操作SkipWhile　113
5.11.3　提取指定元素的操作Take　114
5.11.4　提取满足指定条件的元素的序列TakeWhile　114
5.12　联接操作　115
5.12.1　联接操作Join　116
5.12.2　分组联接操作GroupJoin　118
5.13　相等操作SequenceEqual　120
5.14　串联操作Contact　121
目录3　LINQtoSQL
第6章　LINQtoSQL对象模型6.1　LINQtoSQL概述　125
6.2　使用VisualStudio2008创建DBML文件　128
6.2.1　创建DBML文件　129
6.2.2　LINQ代码生成工具SqlMetail.exe　131
6.2.3　创建UserInfo表的实体类　132
6.2.4　创建UserInfo表的实体类的属性　133
6.2.5　创建LinqDB数据库的数据上下文的方法　134
6.3　处理EntitySetT类型的结果　137
6.3.1　计算实体数量的Count属性　137
6.3.2　实体项集合的Item属性　137
6.3.3　是否已加载或分配值的HasLoadedOrAssignedValues属性　139
6.3.4　是否具有延迟查询的IsDeferred属性　139
6.3.5　添加实体的Add()方法　141
6.3.6　添加实体集合的AddRange()方法　142
6.3.7　插入实体的Insert()方法　144
6.3.8　移除实体的Remove()方法　145
6.3.9　移除指定索引的实体RemoveAt()方法　146
6.3.10　移除所有实体的Clear()方法　147
6.3.11　查找实体索引的IndexOf()方法　148
6.3.12　查找是否包含实体的Contains()方法　149
6.3.13　分配集合的Assign()方法　150
6.3.14　返回实体枚举的GetEnumerator()方法　151
6.4　处理EntityRefT类型的结果　153
6.5　处理IExecuteResult类型的结果　155
6.6　处理ISingleResultT类型的结果　156
6.7　处理IMultipleResults类型的结果　158
第7章　数据上下文7.1　DataContext概述　160
7.2　DataContext类的属性　162
7.2.1　连接属性Connection　162
7.2.2　事务属性Transaction　162
7.2.3　执行命令的最大时间属性CommandTimeout　164
7.2.4　冲突对象集合属性ChangeConflicts　164
7.2.5　是否延时加载关系属性DeferredLoadingEnabled　166
7.2.6　数据导入选项属性LoadOptions　166
7.2.7　日志属性Log　167
7.3　DataContext类的方法　169
7.3.1　检测数据库是否存在的DatabaseExists()方法　169
7.3.2　创建数据库的CreateDatabase()方法　170
7.3.3　删除数据库的DeleteDatabase()方法　171
7.3.4　执行SQL命令的ExecuteCommand()方法　171
7.3.5　执行SQL查询的ExecuteQuery()方法　172
7.3.6　提交更改到数据库的SubmitChanges()方法　174
7.3.7　获取命令信息的GetCommand()方法　174
7.3.8　获取表集合的GetTable()方法　175
7.3.9　获取已修改对象的GetChangeSet()方法　176
7.3.10　转换IDataReader对象的Translate()方法　178
7.3.11　刷新对象状态的Refresh()方法　179
第8章　使用LINQ查询和操作数据库8.1　查询数据库中的数据　181
8.1.1　简单查询　183
8.1.2　复杂查询　184
8.1.3　排序数据　185
8.1.4　聚合查询　186
8.1.5　分组查询　187
8.2　操作数据库中的数据　189
8.2.1　向数据库中插入数据　189
8.2.2　修改数据库中的数据　191
8.2.3　删除数据库中的数据　193
8.2.4　使用存储过程查询单表数据　195
8.2.5　使用存储过程查询多表数据　197
8.2.6　使用存储过程操作数据　199
8.2.7　使用函数过滤数据　203
目录4　LINQtoObjects、DataSet和XML
第9章　LINQtoObjects9.1　LINQtoObjects概述　209
9.2　使用LINQ操作集合　209
9.2.1　操作静态数组　210
9.2.2　操作动态数组　211
9.2.3　操作泛型列表ListT　213
9.2.4　操作泛型排序列表SortedListTKey,TValue　214
9.2.5　操作泛型双向链表LinkedListT　216
9.2.6　操作泛型队列QueueT　216
9.2.7　操作泛型堆栈StackT　218
9.2.8　操作泛型哈希集HashSetT　219
9.2.9　操作泛型字典DictionaryTKey,TValue　221
9.2.10　操作泛型排序字典SortedDictionaryTKey,TValue　221
9.2.11　操作泛型通用集合CollectionT　223
9.2.12　操作泛型绑定列表BindingListT　224
9.3　使用LINQ操作字符串　226
9.3.1　查找指定的字符　226
9.3.2　查找指定的字符串　227
9.3.3　词频统计　228
9.3.4　LINQ查询使用正则表达式处理字符串　230
9.4　使用LINQ操作文件目录　232
9.4.1　查询指定名称的文件　232
9.4.2　查询指定扩展名的文件　233
9.4.3　查询指定属性的文件　234
9.4.4　统计文件夹的大小　235
9.4.5　比较两个文件夹中是否存在同名文件　236
9.4.6　查询文件夹所有文件的内容　237
第10章　LINQtoDataSet10.1　LINQtoDataSet概述　239
10.2　DataTableExtensions类　241
10.2.1　AsDataView()方法　241
10.2.2　AsEnumerable()方法　242
10.2.3　CopyToDataTable()方法　244
10.3　DataRowExtensions类　245
10.3.1　泛型FieldT()方法　246
10.3.2　泛型SetFieldT()方法　247
10.4　使用LINQ查询DataSet　249
10.4.1　查询DataSet中的单个表　249
10.4.2　查询DataSet中的多个表　250
10.4.3　使用投影操作查询DataSet　253
10.4.4　使用筛选操作查询DataSet　253
10.4.5　使用排序操作查询DataSet　255
10.4.6　使用聚合操作查询DataSet　256
10.4.7　使用元素操作查询DataSet　258
10.4.8　使用联接操作查询DataSet　259
10.4.9　使用数据分区操作查询DataSet　260
10.4.10　使用集合操作比较DataRow　262
10.5　使用LINQ查询DataView　264
10.5.1　使用LINQ过滤数据　264
10.5.2　使用LINQ排序数据　266
10.5.3　使用LINQ创建DataView　267
第11章　LINQtoXML11.1　LINQtoXML概述　269
11.2　LINQtoXML基础类　271
11.2.1　XElement类　271
11.2.2　XAttribute类　273
11.2.3　XDocument和XDeclaration类　275
11.2.4　XComment类　277
11.2.5　XNamespace类　278
11.2.6　LINQtoXML其他基础类　280
11.3　使用LINQtoXML查询XML文件　281
11.3.1　读取XML文件　281
11.3.2　查询根元素　281
11.3.3　查询指定名称的元素　283
11.3.4　查询指定属性的元素　284
11.3.5　查询指定元素的子元素　284
11.3.6　查询元素并排序　286
11.3.7　查询元素并计算指定的值　287
11.4　使用LINQtoXML操作XML文件　288
11.4.1　创建XML文件　288
11.4.2　添加元素到XML文件　289
11.4.3　修改XML文件中的元素　291
11.4.4　删除XML文件中的元素　292
11.4.5　将XML文件中的属性转换为元素　293
目录5　LINQ应用
第12章　LINQ在ASP.NET中的应用12.1　使用LINQ数据源控件　299
12.2　使用LINQ为文本框提供数据　303
12.3　使用LINQ为列表控件提供数据　305
12.4　使用LINQ为Repeater控件提供数据　307
12.5　使用LINQ为DataList控件提供数据　309
12.6　使用LINQ为GridView控件提供数据　311
12.7　使用LINQ为ListView控件提供数据　313
第13章　LINQ在Windows窗体中的应用13.1　创建Windows窗体应用程序　316
13.2　使用LINQ数据源控件　318
13.3　使用LINQ为文本框提供数据　319
13.4　使用LINQ为列表控件提供数据　320
13.5　使用LINQ为DataGridView控件提供数据　320
13.6　使用LINQ为ListView控件提供数据　321
13.7　初始化MainForm窗体　322
13.8　运行Windows窗体应用程序　322
……