産品特色
編輯推薦
Entity Framework 是微軟 .NET 平颱支持的對象關聯映射技術,如今已發展得相當成熟,能夠輕鬆支持大型係統開發,開發人員可以通過實體數據模型對象與數據庫進行溝通,建立更堅固的商業應用程序係統,避免因為通過 ADO.NET
直接處理 SQL 語句伴隨的風險與可能産生的錯誤。
《Entity Framework 實用精要》帶領讀者進入 Entity Framework 的世界,建立必要的技術能力,同時希望讀者在完成書本的學習之後,能夠更進一步地將其運用在實際項目開發中。
內容簡介
Entity Framework 是微軟公司 .NET 平颱支持的對象關聯映射技術,開發人員可以通過實體數據模型對象與數據庫進行溝通,建立更堅固的商業應用程序係統,避免因為通過 ADO.NET 直接處理 SQL 語句而帶來的風險與可能引發的錯誤。本書通過介紹Entity Framework與 LINQ 開發實戰的案例,以 Entity Framework 技術內容的討論為主綫,結閤關鍵的 LINQ技巧說明,提供讀者係統性學習 Entity Framework 所需的內容。
《Entity Framework 實用精要》旨在幫助讀者進入 Entity Framework的世界,建立必要的技術能力,同時希望讀者在完成本書的教學課程之後,能夠更進一步地將其運用在實際的項目開發中。
作者簡介
呂高旭,颱灣康廷數字創始人, 專注程序語言與各種應用開發方法的教學,包括實體紙本圖書齣版與在綫課程服務。
目錄
第1章 Entity Framework概觀 1
1.1 初探Entity Framework 1
1.2 Entity Framework與ADO.NET 9
1.3 對象關聯映射——ORM 13
1.4 Entity Framework開發流程 14
1.5 空EF設計器模型 16
1.6 使用Code First 27
1.6.1 來自數據庫的Code First 27
1.6.2 空Code First模型 31
1.7 小結 34
第2章 實體數據模型 35
2.1 實體數據模型概觀 35
2.2 模型工具與.edmx文件 36
2.2.1 概念模型 39
2.2.2 存儲模型 42
2.2.3 映射 42
2.3 實體數據模型與類文件 44
2.4 POCO與實體數據模型 46
2.5 實體類結構映射 53
2.5.1 數據注解屬性 54
2.5.2 Fluent API 61
2.6 EF Designer數據庫更新 65
2.7 Code First數據庫遷移 71
2.7.1 結構變動遷移 76
2.7.2 查看SQL 78
2.7.3 指定遷移 79
2.8 關於DbContext 79
2.8.1 傳送SQL語句與數據轉換 80
2.8.2 查詢與連接議題 81
2.8.3 管理更新操作 82
2.8.4 DbContext對象生命期 83
2.8.5 覆寫OnModelCreating方法 83
2.8.6 管理與操作數據庫——Database屬性 83
2.8.7 ObjectContext 85
2.9 DbSet 87
2.10 追蹤本地數據集 91
2.11 小結 94
第3章 實體數據模型與LINQ 95
3.1 LINQ與Entity Framework 95
3.2 Select——選擇與投影 99
3.2.1 類型轉換 100
3.2.2 多重from與SelectMany 103
3.3 Where與數據篩選 107
3.4 排序 113
3.5 分組 116
3.6 轉換 122
3.6.1 AsEnumerable 122
3.6.2 Array與List 125
3.6.3 ToDictionary 128
3.6.4 ToLookup 131
3.7 異步查詢 134
3.8 關聯——Join 136
3.8.1 GroupJoin 139
3.8.2 Inner join與Left Outer Join 141
3.8.3 Entity Framework與Join 142
3.9 LINQ、SQL與Entity SQL 146
3.9.1 關於SQL語句 147
3.9.2 Entity SQL 147
3.9.3 Entity SQL參數 149
3.10 小結 150
第4章 Entity Framework與擴充方法 151
4.1 Enumerable擴充方法 151
4.2 聚閤運算 152
4.2.1 計算平均值 153
4.2.2 Average方法與Func 155
4.2.3 聚閤函數 158
4.3 設置操作 160
4.4 産生操作 164
4.4.1 Empty與DefaultIfEmpty 164
4.4.2 Range 166
4.4.3 Repeat 167
4.5 計數運算 169
4.5.1 All 169
4.5.2 Any 171
4.5.3 Contains 172
4.6 分割運算 173
4.6.1 Skip與SkipWhile 174
4.6.2 Take與TakeWhile 176
4.7 元素操作 178
4.7.1 First與FirstOrDefault 178
4.7.2 Last與LastOrDefault 180
4.7.3 ElementAt與ElementAtOrDefault 182
4.7.4 Single與SingleOrDefault 183
4.8 擴展方法的異步版本 185
4.9 小結 186
第5章 數據關聯與繼承 187
5.1 與關聯數據互動 187
5.2 Code Frist與關聯設計 194
5.2.1 Code First關聯設置慣例 196
5.2.2 數據注解 200
5.3 處理特定關聯定義 203
5.3.1 一對一(1 to 0..1) 203
5.3.2 多對多(* to *) 208
5.3.3 多對多關聯——附加數據字段 213
5.4 使用CodeFirst設計關聯 216
5.5 Lazy Loading與Eager Loading 223
5.5.1 調整virtual屬性 229
5.5.2 Include方法與對象加載 231
5.5.3 Include方法與異步數據加載 234
5.6 繼承 235
5.6.1 Table Per Hierarchy(TPH) 235
5.6.2 Table Per Type(TPT) 241
5.6.3 Table Per Concrete Class(TPC) 244
5.7 復雜類型 248
5.8 小結 251
第6章 數據編輯與維護 252
6.1 數據編輯操作 252
6.1.1 實體數據對象狀態 255
6.1.2 更新與刪除 256
6.1.3 Attach 259
6.1.4 變更追蹤——DbContext.ChangeTracker 263
6.1.5 更新驗證異常——DbEntityValidationException 268
6.1.6 DbContext.ValidateEntity方法 271
6.1.7 覆寫SaveChange 272
6.1.8 異步的變更更新 274
6.2 SQL語句 275
6.2.1 使用參數 279
6.2.2 執行非查詢變更指令——ExecuteSqlCommand 280
6.3 存儲過程 281
6.3.1 直接調用存儲過程 288
6.3.2 獲取返迴值 289
6.3.3 CodeFirst自動設置存儲過程 290
6.4 數據變更衝突 294
6.4.1 並發衝突處理——Database Wins或Client Wins 298
6.4.2 SQL語句與數據衝突 300
6.4.3 存儲過程與數據衝突 300
6.4.4 ConcurrencyCheck注解 302
6.5 事務處理 304
6.5.1 共享事務處理連接 305
6.5.2 使用TransactionScope 305
6.6 復雜類型的數據對象變更 308
6.7 小結 310
第7章 ASP.NET整閤應用 311
7.1 Web Forms與Entity Framework 311
7.1.1 查詢 314
7.1.2 更新 315
7.1.3 刪除 316
7.1.4 處理單項數據 316
7.1.5 關聯設計 319
7.2 MVC與Entity Framework 321
7.2.1 查詢 325
7.2.2 更新/刪除 326
7.2.3 添加 330
7.2.4 關係型數據 332
7.3 WCF服務與實體數據模型 335
7.3.1 WCF應用程序項目 335
7.3.2 數據閤約 339
7.3.3 整閤Entity Framework 340
7.4 小結 346
前言/序言
前 言
程序設計師編寫網頁商業應用程序時離不開對數據庫的運用,基本可以認為,不懂得運用數據庫的網頁應用程序設計師隻是完成瞭網頁美工設計師“委托的”工作。因為幾乎所有的商業化網頁用程序都要在後颱連接與訪問數據庫。
然而,沒有麵嚮對象的自動化工具,程序設計模型和數據庫集成在一起就會讓程序邏輯和數據模型雜亂無章地混閤在一起,不但開發大型網頁商業應用軟件無望,就連小型的網頁應用程序也沒有擴展的能力,將來維護起來更是可以用“一塌糊塗”來形容。
微軟公司在它的ADO.NET這個數據庫訪問利器的基礎上融入瞭對象關係映射(Object-Relational Mapping)的技術,再加上一個設計的工具(Designer),就構成瞭現在的 ADO.NET Entity Framework,就是以實體數據模型為主,通過Entity Framework Designer(EF設計器),利用抽象化數據結構的方式,將每個數據庫對象轉化為應用程序實體(或對象),讓數據庫的E/R模型(實體-關聯模型)也就轉換為對象模型。這樣,讓程序設計師能運用自己最熟悉的麵嚮對象的程序設計語言來輕鬆自如且安全可靠地調用和訪問數據庫,讓大型網頁商業應用軟件的開發也不是難事。
Entity Framework 是微軟 .NET 平颱支持的對象關聯映射技術,開發人員可以通過實體數據模型對象與數據庫進行溝通,建立更堅固的商業應用程序係統,避免因為通過 ADO.NET 直接處理 SQL 語句伴隨的風險與可能産生的錯誤。
從傳統的 ADO、ADO.NET 到現在的 Entity Framework,善用新技術讓我們在新時代走得更穩,本書主要的目標,除瞭帶領讀者進入 Entity Framework 的世界,建立必要的技術能力,同時希望讀者在完成書本的學習之後,能夠更進一步地將其運用在實際項目開發中。
本書為瞭方便讀者自學或者學校教學,所有的範例程序都是在微軟公司提供的免費版Visual Studio Community 2017中用C# 語言為主體編寫完成的,所有範例程序都經過瞭調試和測試,可以順利運行。
微軟的Visual Studio Community 2017可以從微軟公司的官方網站下載,網址如下:
https://www.visualstudio.com/zh-hans/thank-you-downloading-visual-studio/?sku=Community&rel;=15
本書的所有範例程序源碼及其運行必需的文件,讀者都可以從下麵的網址下載壓縮的文件包,之後解壓縮到自己的Visual Studio項目文件夾中即可。
這裏提供下載範例程序的網址:
http://pan.baidu.com/s/1cuEVUm(注意區分數字和英文字母大小寫)
如果下載有問題,請發送電子郵件至booksaga@126.com,郵件主題設置為“求Entity Framework實用精要下載資源”。
最後做一點說明:我們在編寫這些範例程序的時候,為瞭適用性,大多數範例程序都選擇連接的是Visual Studio Community 2017集成開發環境中自帶的虛擬數據庫(LocalDb)MSSQLLocalDB,因此範例程序對數據庫的操作都是對加載到內存中的這個虛擬數據庫進行增、刪、改等操作,範例程序運行時可以反映齣這種變化,但是不會實際修改範例程序運行時載入的實際數據庫文件。如果讀者要把範例程序拓展到對實際數據庫的操作,那麼在需要時按照實際應用建立本地或者網絡遠端的實際數據庫,並提供訪問的服務即可。
編者
2017年9月
Entity Framework 實用精要 下載 mobi epub pdf txt 電子書 格式