LINQ技術詳解(C#2008版)

LINQ技術詳解(C#2008版)

語言集成查詢(Language Integrated Query, LINQ),是一項微軟技術,是一組用於c#和Visual Basic語言的擴展,新增一種自然查詢的SQL語法到·NET Framework 的編程語言中,目前可支持 Visual Basic .NET 以及 C# 語言,它允許編寫C#或者Visual Basic代碼以查詢資料庫相同的方式操作記憶體數據。

基本介紹

  • 書名:《LINQ技術詳解(C#2008版)》
  • 作者:(美國)Joseph C.Rattz.Jr.
  • 譯者程勝,朱新寧,楊萍
  • ISBN:9787115207906
  • 頁數:606頁
  • 定價:79.00
  • 出版社人民郵電出版社
  • 出版時間:2009年
  • 裝幀:平裝
  • 開本:16
內容簡介,作者簡介,編輯推薦,目錄,

內容簡介

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

相關詞條

熱門詞條

聯絡我們