LINQ技術詳解(C#2008版)

LINQ技術詳解(C#2008版)

書 名 《LINQ技術詳解(C#2008版)》是人民郵電出版社2009年出版的圖書,作者是(美國)Joseph C.Rattz.Jr,譯者為程勝、朱新寧、楊萍。

基本信息

基本信息

LINQ技術詳解(C#2008版)

作者:(美國)Joseph C.Rattz.Jr. 譯者:程勝朱新寧楊萍

出版社:人民郵電出版社

頁碼:606 頁

出版日期:2009年

ISBN:9787115207906

裝幀:平裝

開本:16

定價:79.00

內容簡介

《LINQ技術詳解C#2008版》將原理介紹與實踐操作相結合,全面系統地闡述了Microsoft C# 2008中的語言集成查詢(LINQ)技術的專業知識,包括其原理、功能和套用。特別對LINQ在對象、XML、數據集和SQL上的套用進行了深入分析,詳細講解了這些套用可以使用的操作符和操作符原型,並分別給出使用這些操作符的示例和說明,以便讀者理解和編寫自己的LINQ代碼。

《LINQ技術詳解C#2008版》可以為LINQ的初學者、中級用戶和高級用戶等不同層次的讀者提供相應的信息,不僅為LINQ初學者提供入門級的知識和實例,還可以作為LINQ中高級開發人員的工具書。

作者簡介

拉特茲(JOSEPH C.RATTZ,JR.)從l990年開始從事軟體開發工作,當時有一個朋友請求他幫忙為commodore Amiga公司編寫一個名為ANSI Master的ANSI文本編輯器。後來他又編寫了猜詞遊戲(gallows)軟體。他的編程經歷是從編譯這些Basic語言開始的,為了獲得更快的速度和更強大的功能,他後來使用C語言編寫程式。之後,Joe開發了一些應用程式,並賣給了JumpDisk,一家Amiga碟片雜誌,也就是Amiga World雜誌。由於他居住在一個小城鎮,並在非常孤立的平台上進行開發,因此Joe體驗到所有錯誤的編寫代碼的方法。在努力嘗試提高比較低級的應用程式編程水平的時候,他領悟到簡單、可維護代碼的重要性。在Joe第一次發現可以使用原始碼級調試器的時候,就對它一見鍾情了。 兩年以後,Joe獲得了他的第一個軟體開發機會,成為了Policy Management Systems Corporation公司的初級程式設計師,他負責在OS/2和Presentation Manager平台上開發基於客戶機朋艮務器的保險應用程式。多年來,在為SCT、DocuCorp、IBM、亞特蘭大奧委會、CheckFree、NCR、EDS、Delta Technology、Radiant Systems和Genuine Parts Company開發應用程式的過程中,他又獲得了C++、UNIX、Java、ASP、ASP.NET、C#、HTML、DHTML和XML的開發技能。Joe喜歡創造性的用戶界面設計,並且很重視在伺服器端進行規範性開發的必要性。但是,要讓他自己選擇,他最喜歡的兼職開發工作就是調試代碼。 Joe在Genuine Parts Company公司(NAPA的母公司)的Automotive Part Group Information System部門工作過,在那裡他是為自己的“孩子”而工作,這個“孩子”就是Storefront網站。這個為NAPA商店設計的網站可以在IBMAS/400網路上提供瀏覽賬號和數據的功能。

編輯推薦

親愛的讀者:《LINQ技術詳解C#2008版》是一本完全關於代碼的書。確切地講。《LINQ技術詳解C#2008版》從代碼開始。從代碼結束。在編寫《LINQ技術詳解C#2008版》時。我期望創建一個有意義的LI NQ示例的寶庫。《LINQ技術詳解C#2008版》並沒有向讀者展示最簡單的使用示例,我努力全面介紹有關LINQ的知識,並演示可以使用的所有LI NQ操作符和原型。通過這些信息。讀者可以按照其本身的設計來使用LINQ,並讓自己的投資獲得最大的回報。

貫穿全書,我的目的是以一種讀者可以使用的形式提供實際有用的信息。因此,《LINQ技術詳解C#2008版》並沒有重點介紹無法套用於實際開發中的複雜的示例應用程式,而是重點介紹了每個LINQ操作符、方法或類。不過。在需要使用示例來真正演示一個問題時,也會恰如其分地出現一些比較複雜的示例。例如。演示如何處理並發衝突的代碼示例實際上創建了並發衝突,這樣讀者就可以逐步了解代碼並全面了解示例了。

《LINQ技術詳解C#2008版》是寫給那些對C#有初步了解,想要學習LINQ和DLINQ相關的C#3.0語言功能的讀者的。讀者不需要熟悉所有最新的C#2.0或3.0功能就能理解LINQ的專業知識。在閱讀《LINQ技術詳解C#2008版》的高級語言功能部分時。也許需要具備更深入的知識,那么我會從最基礎的地方開始介紹。以確保每個讀者都能充分準備好必要的知識。

Joseph C.Rattz,Jr.

目錄

第1部分 LINQ專業指南:C#2008中的語言集成查詢

第1章 你好!LINQ 2

1.1 思維轉換 2

1.1.1 查詢XML 3

1.1.2 查詢SQLServer資料庫 4

1.2 緒論 5

1.2.1 LINQ是關於數據查詢的技術 6

1.2.2 LINQ的組件 6

1.2.3 如何獲得LINQ 8

1.3 LINQ並不僅僅用於查詢 8

1.4 初學提示 11

1.4.1 在容易混淆的地方使用var關鍵字 12

1.4.2 對以前版本的集合使用Cast或OfType操作符 13

1.4.3 優先使用OfType操作符而不是Cast操作符 14

1.4.4 不要假定查詢是不會出錯的 15

1.4.5 利用延遲查詢 16

1.4.6 使用DataContext日誌 16

1.4.7 使用LINQ論壇 18

1.5 小結 18

第2章 C#3.0語言的LINQ增強功能 19

2.1 C#3.0語言的新功能 19

2.1.1Lambda表達式20

2.1.2表達式樹25

2.1.3 關鍵字變數var.對象初始化和匿名類型 26

2.1.4 擴展方法 31

2.1.5 分部方法 36

2.1.6 查詢表達式 38

2.2 小結 50

第2部分 LINQ到對象

第3章 LINQ到對象簡介 52

3.1 LINQ到對象概述 52

3.2 IEnumerableT.序列和標準查詢操作符 53

3.3 返回IEnumerableT.生成和延遲查詢 54

3.4 Func委託 57

3.5 按字母順序的標準查詢操作符交叉引用 58

3.6 小結 60

第4章 延遲操作符 61

4.1 引用的命名空間 61

4.2 引用的程式集 62

4.3 公共類 62

4.4 按目的分類的延遲操作符 64

4.4.1 限定操作符 64

4.4.2 投影操作符 66

4.4.3 分區操作符 76

4.4.4 串聯操作符 83

4.4.5 排序操作符 86

4.4.6 連線操作符 103

4.4.7 分組操作符 106

4.4.8 集合操作符 112

4.4.9 轉換操作符 118

4.4.10 元素操作符 125

4.4.11 生成操作符 129

4.5 小結 132

第5章 非延遲操作符 133

5.1 引用的命名空間 133

5.2 公共類 133

5.3 按目的分類的非延遲操作符 136

5.3.1 轉換操作符 137

5.3.2 相等操作符 149

5.3.3 元素操作符 152

5.3.4 量詞操作符 164

5.3.5 聚合操作符 169

5.4 小結 183

第3部分 LINQ到XML

第6章 LINQ到XML簡介 186

6.1 簡介 189

6.2 假冒的W3CDOMXMLAPI 189

6.3 小結 191

第7章 LINQ到XMLAPI 193

7.1 引用的命名空間 193

7.2 重大的API增強設計 194

7.2.1 使用功能構造來簡化XML樹構造 194

7.2.2 從以文檔為中心到以元素為中心 196

7.2.3 命名.命名空間和前綴 198

7.2.4 提取節點的值 201

7.3 LINQ到XML對象模型 203

7.4 延遲執行查詢.節點刪除和Halloween問題 204

7.5 XML的創建 207

7.5.1 使用XElement類創建元素 207

7.5.2 使用XAttribute類創建屬性 210

7.5.3 使用XComments類創建注釋 211

7.5.4 使用XContainer類創建容器 212

7.5.5 使用XDeclaration類創建聲明 212

7.5.6 使用XDocumentType類創建文檔類型 213

7.5.7 使用XDocument類創建文檔 214

7.5.8 使用XName類創建名稱 215

7.5.9 使用XNamespace類創建命名空間 216

7.5.10 使用XNode類創建節點 216

7.5.11 使用XprocessingInstruction類創建處理指令 216

7.5.12 使用XstreamingElement類創建流元素 218

7.5.13 使用XText類創建文本 220

7.5.14 使用XCData類創建CData 220

7.6 XML的輸出 221

7.6.1 使用XDocument.Save()保存文檔 221

7.6.2 使用XElement.Save()保存文檔 222

7.7 XML的輸入 223

7.7.1 使用XDocument.Load()載入文檔 223

7.7.2 使用XElement.Load()載入文檔 225

7.7.3 使用XDocument.Parse()或XElement.Parse()解析文檔 225

7.8 XML的遍歷 226

7.8.1 遍歷屬性 227

7.8.2 遍歷方法 231

7.9 XML的修改 245

7.9.1 添加節點 246

7.9.2 刪除節點 250

7.9.3 更新節點 253

7.9.4 子XElement對象的XElement.SetElementValue()方法 257

7.10 XML的屬性(Attribute) 259

7.10.1 屬性(Attribute)的創建 259

7.10.2 屬性(Attribute)的遍歷 259

7.10.3 屬性(Attribute)的修改 263

7.11 XML的注釋 267

7.11.1 使用XObject.AddAnnotation()方法添加注釋 268

7.11.2 使用XObject.Annotation()或XObject.Annotations()方法訪問注釋 268

7.11.3 使用XObject.RemoveAnnotations()方法刪除注釋 268

7.11.4 注釋示例 268

7.12 XML的事件 272

7.12.1 XObject.Changing 272

7.12.2 XObject.Changed 272

7.12.3 事件的兩個示例 273

7.12.4 技巧提示或不確定問題 277

7.13 小結 277

第8章 LINQ到XML操作符 278

8.1 LINQ到XML操作符簡介 278

8.2 Ancestors操作符 279

8.2.1 原型 279

8.2.2 示例 280

8.3 AncestorsAndSelf操作符 283

8.3.1 原型 284

8.3.2 示例 284

8.4 Attributes操作符 286

8.4.1 原型 286

8.4.2 示例 287

8.5 DescendantNodes操作符 289

8.5.1 原型 289

8.5.2 示例 289

8.6 DescendantNodesAndSelf操作符 291

8.6.1 原型 291

8.6.2 示例 291

8.7 Descendants操作符.. 292

8.7.1 原型 292

8.7.2 示例 293

8.8 DescendantsAndSelf操作符 295

8.8.1 原型 295

8.8.2 示例 296

8.9 Elements操作符 298

8.9.1 原型 298

8.9.2 示例 298

8.10 InDocumentOrder操作符 300

8.10.1 原型 300

8.10.2 示例 301

8.11 Nodes操作符 302

8.11.1 原型 302

8.11.2 示例 303

8.12 Remove操作符 304

8.12.1 原型 304

8.12.2 示例 304

8.13 小結 306

第9章 其他的XML功能 308

9.1 引用的命名空間 308

9.2 查詢 309

9.2.1 不需要到達 309

9.2.2 複雜查詢 311

9.3 轉換 317

9.3.1 使用XSLT進行轉換 318

9.3.2 使用功能構造進行轉換 320

9.3.3 提示 322

9.4 驗證 329

9.4.1 擴展方法 329

9.4.2 原型 329

9.4.3 獲得XML結構描述 330

9.4.4 示例 332

9.5 XPath 344

9.5.1 原型 344

9.5.2 示例 345

9.6 小結 345

第4部分 LINQ到數據集

第10章 LINQ到數據集操作符 348

10.1 程式集引用 349

10.2 引用的命名空間 349

10.3 示例中使用的公共代碼 349

10.4 數據行集合操作符 351

10.4.1 Distinct操作符 351

10.4.2 Except操作符 355

10.4.3 Intersect操作符 358

10.4.4 Union操作符 360

10.4.5 SequenceEqual操作符 362

10.5 數據行欄位操作符 364

10.5.1 FieldT操作符 368

10.5.2 SetFieldT操作符 373

10.6 數據表操作符 376

10.6.1 AsEnumerable操作符 376

10.6.2 CopyToDataTableDataRow操作符 377

10.7 小結 383

第11章 其他數據集功能 384

11.1 引用的命名空間 384

11.2 類型化數據集 384

11.3 綜合示例 386

11.4 小結 389

第5部分 LINQ到SQL

第12章 LINQ到SQL簡介 392

12.1 LINQ到SQL簡介 393

12.1.1 DataContext類 395

12.1.2實體類395

12.1.3 關聯 396

12.1.4 並發衝突檢測 397

12.1.5 並發衝突解決 397

12.2 運行示例的先決條件 397

12.2.1 獲得Northwind資料庫的合適版本 397

12.2.2 生成Northwind實體類 398

12.2.3 生成NorthwindXML映射檔案 399

12.3 使用LINQ到SQLAPI 399

12.4 IQueryableT 400

12.5 一些常用方法 400

12.5.1 GetStringFromDb() 400

12.5.2 ExecuteStatementInDb() 401

12.6 小結 402

第13章 LINQ到SQL技巧和工具 403

13.1 LINQ到SQL技巧和工具簡介 403

13.2 技巧和提示 403

13.2.1 使用DataContext.Log屬性 404

13.2.2 使用GetChangeSet()方法 405

13.2.3 考慮使用分部類或映射檔案 405

13.2.4 考慮使用分部方法 405

13.3 工具 406

13.3.1 SQLMetal 406

13.3.2 對象關係設計器 411

13.4 結合使用SQLMetal和對象關係設計器 423

13.5 小結 423

第14章 LINQ到SQL資料庫操作 425

14.1 運行示例的先決條件 425

14.1.1 一些常用方法 425

14.1.2 使用LINQ到SQLAPI 426

14.2 標準資料庫操作 426

14.2.1 插入 426

14.2.2 查詢 431

14.2.3 更新 454

14.2.4 刪除 457

14.3 覆蓋資料庫修改語句 460

14.3.1 覆蓋插入方法 461

14.3.2 覆蓋更新方法 461

14.3.3 覆蓋刪除方法 461

14.3.4 示例 462

14.3.5 對象關係設計器中的覆蓋功能 464

14.3.6 一些考慮 464

14.4 SQL翻譯 465

14.5 小結 467

第15章 LINQ到SQL實體類 468

15.1 運行示例的先決條件 468

15.2 實體類 468

15.2.1 創建實體類 468

15.2.2 XML外部映射檔案結構描述 498

15.2.3 投影到實體類或非實體類 499

15.3 使用分部方法擴展實體類 504

15.4 重要的System.Data.LinqAPI類 506

15.4.1 EntitySetT 507

15.4.2 EntityRefT 507

15.4.3 TableT 509

15.4.4 IExecuteResult 510

15.4.5 ISingleResultT 511

15.4.6 IMultipleResults 511

15.5 小結 512

第16章 DataContext 514

16.1 運行示例的先決條件 514

16.1.1 一些常用方法 514

16.1.2 使用LINQ到SQLAPI 514

16.2 [Your]DataContext類 515

16.3 DataContext類 515

16.3.1 主要用途 518

16.3.2 DataContext()和[Your]DataContext() 524

16.3.3 SubmitChanges() 537

16.3.4 DatabaseExists() 545

16.3.5 CreateDatabase() 546

16.3.6 DeleteDatabase() 547

16.3.7 CreateMethodCallQuery() 548

16.3.8 ExecuteQuery() 550

16.3.9 Translate() 552

16.3.10 ExecuteCommand() 554

16.3.11 ExecuteMethodCall() 555

16.3.12 GetCommand() 563

16.3.13 GetChangeSet() 564

16.3.14 GetTable 566

16.3.15 Refresh() 568

16.4 小結 574

第17章 並發衝突 576

17.1 運行示例的先決條件 576

17.1.1 一些常用方法 576

17.1.2 使用LINQ到SQLAPI 576

17.2 並發衝突 576

17.2.1 樂觀並發 577

17.2.2 悲觀並發 588

17.2.3 中間層和伺服器的可選方案 591

17.3 小結 593

第18章 其他SQL功能 594

18.1 運行示例的先決條件 594

18.1.1 使用LINQ到SQLAPI 594

18.1.2 使用LINQ到XMLAPI 594

18.2資料庫視圖594

18.3 實體類繼承 596

18.4 事務 602

18.5 小結 604

……

相關搜尋

熱門詞條

聯絡我們