《精通LINQ数据访问技术 基于C#》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:侯利军编著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2008
  • ISBN:7115180083
  • 页数:322 页
图书介绍:本书内容新意,详细地全面地介绍了LINQ的基本组成结构、技术原理、查询表达式、查询操作等。目前市场上没有一本如此详细地全面地介绍LINQ。 详细介绍了C# 3.0和LINQ的查询表达式的理论基础和技术应用,如匿名类型、Lambda表达式、查询子句、查询表达式树、查询操作、LINQ基础类等。 详细介绍了LINQ to SQL查询和操作(如添加、修改、删除等)SQL Server数据库的方法、LINQ to XML查询和操作(如创建、修改、删除、属性转换等)XML树、LINQ to DataSet查询DataSet中的数据,以及LINQ to Object查询集合中元素的方法。 实例丰富,用代码进行讲解。书中共包含数百个实例,并且这些实例中代码都附有注释、说明及运行效果图,并且每一个知识点都以实际开发的需要来讲解,步骤详细,可操作性强。 配有多媒体教学光盘,把一些安装、配置性操作制作成动画,并配有声音讲解,并且书中有大量的附图,并且文字尽量避免艰深生涩,讲解内容循序渐进,有迹可寻。 6.作者有多年(5-6年)的.NET平台的开发经验,书中代码规范、严整、可读性强、易移植,并介绍了大量实用技

第一篇 LINQ基础 3

第1章 LINQ概述 3

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 安装Visual Studio 2008 6

1.2.2 配置Visual Studio 2008 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和IEnumerable〈T〉接口 13

1.3.6 IQueryable和IQueryable〈T〉接口 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.0 25

2.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

第二篇 LINQ查询初步 41

第3章 LINQ查询概述 41

3.1 准备用于LINQ查询的数据源 41

3.1.1 准备集合类型的数据源 41

3.1.2 准备DataSet类型的数据源 42

3.1.3 准备SQL Server数据库类型的数据源 43

3.1.4 准备XML类型的数据源 44

3.2 创建LINQ查询表达式 44

3.2.1 创建查询集合类型的查询表达式 44

3.2.2 创建查询DataSet类型的查询表达式 45

3.2.3 创建查询SQL Server数据库类型的查询表达式 45

3.2.4 创建查询XML类型的查询表达式 45

3.3 执行LINQ查询 46

第4章 LINQ查询子句 47

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 ioin子句 61

4.2.8 let子句 65

第5章 LINQ查询操作 67

5.1 查询操作概述 67

5.2 筛选操作Mhere 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

第三篇 LINQ to SQL 125

第6章 LINQ to SQL对象模型 125

6.1 LINQ to SQL概述 125

6.2 使用Visual Studio 2008创建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 处理EntitySet〈T〉类型的结果 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 处理EntityRef〈T〉类型的结果 153

6.5 处理IExecuteResult类型的结果 155

6.6 处理ISingleResult〈T〉类型的结果 156

6.7 处理IMultipleResults类型的结果 158

第7章 数据上下文 160

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查询和操作数据库 181

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

第四篇 LINQ to Objects、DataSet和XML第9章 LINQ to Objects 209

9.1 LINQ to Objects概述 209

9.2 使用LINQ操作集合 209

9.2.1 操作静态数组 210

9.2.2 操作动态数组 211

9.2.3 操作泛型列表List〈T〉 213

9.2.4 操作泛型排序列表SortedList〈TKey,TValue〉 214

9.2.5 操作泛型双向链表LinkedList〈T〉 216

9.2.6 操作泛型队列Queue〈T〉 216

9.2.7 操作泛型堆栈Stack〈T〉 218

9.2.8 操作泛型哈希集HashSet〈T〉 219

9.2.9 操作泛型字典Dictionary〈TKey,TValue〉 221

9.2.10 操作泛型排序字典SortedDictionary〈TKey,TValue〉 221

9.2.11 操作泛型通用集合Collection〈T〉 223

9.2.12 操作泛型绑定列表BindingList〈T〉 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章 LINQ to DataSet 239

10.1 LINQ to DataSet概述 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 泛型Field〈T〉()方法 246

10.3.2 泛型SetField〈T〉()方法 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章 LINQ to XML 269

11.1 LINQ to XML概述 269

11.2 LINQ to XML基础类 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 LINQ to XML其他基础类 280

11.3 使用LINQ to XML查询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 使用LINQ to XML操作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

第五篇 LINQ应用 299

第12章 LINQ在ASP.NET中的应用 299

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窗体中的应用 316

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