Entity Framework 實用精要

Entity Framework 實用精要 pdf epub mobi txt 電子書 下載 2025

呂高旭 著
圖書標籤:
  • Entity Framework
  • EF Core
  • 數據訪問
  • ORM
  • C#
  • 數據庫
  • 開發
  • 實戰
  • 教程
  • 編程
想要找書就要到 靜思書屋
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!
齣版社: 清華大學齣版社
ISBN:9787302485933
版次:1
商品編碼:12272069
包裝:平裝
開本:16開
齣版時間:2017-12-01
用紙:膠版紙
頁數:346
字數:570000
正文語種:中文

具體描述

産品特色

編輯推薦

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月


《現代數據驅動應用開發:從容駕馭數據復雜性》 在這個數據爆炸的時代,構建高效、穩定且易於維護的數據驅動應用程序,是每一位軟件工程師麵臨的核心挑戰。無論是精美的 Web 應用、強大的後端服務,還是智能化的桌麵程序,其背後都離不開對數據的精妙處理。然而,隨著項目規模的增長和業務邏輯的復雜化,直接操作數據庫的傳統方式往往會暴露齣諸多問題:代碼冗餘、可維護性差、性能瓶頸頻現,甚至難以應對不斷變化的需求。 《現代數據驅動應用開發:從容駕馭數據復雜性》正是在這樣的背景下誕生的。這本書並非旨在介紹某一款特定的 ORM 工具,而是著眼於數據訪問層設計和實現的核心思想與實踐,幫助開發者構建齣更具健壯性、可擴展性和可維護性的數據驅動應用。我們相信,理解底層原理,掌握普適性的設計模式,纔能在瞬息萬變的開發環境中遊刃有餘。 本書的獨特視角與價值: 許多關於數據訪問的圖書往往會聚焦於某種特定技術的學習,例如某個 ORM 框架的 API 使用、SQL 語句的優化技巧,或是數據庫本身的管理。這些技術固然重要,但若缺乏對宏觀設計和底層原理的深入理解,開發者很容易陷入“隻見樹木,不見森林”的睏境。我們則采取瞭更加“以終為始”的策略,從最終目標——構建高質量的數據驅動應用——齣發,反推並梳理齣實現這一目標所必需的關鍵知識體係。 本書不糾結於某個特定框架的語法細節,而是深入探討: 數據模型的設計哲學: 如何根據業務需求,設計齣清晰、一緻且能夠有效映射現實世界對象的數據模型?我們將探討不同的建模方法,分析其優缺點,並提供實用的指導原則,幫助您避免常見的模型設計陷阱。這包括對實體、值對象、聚閤根等領域驅動設計(DDD)核心概念的深入剖析,以及如何將它們轉化為數據庫的錶結構。 數據訪問策略與模式: 除瞭簡單的 CRUD(創建、讀取、更新、刪除)操作,還有哪些更高級、更靈活的數據訪問模式能夠應對復雜的業務場景?本書將詳細介紹諸如倉儲模式(Repository Pattern)、單元 of Work 模式(Unit of Work Pattern)、CQRS(命令查詢職責分離)等經典設計模式,並結閤實際案例,演示如何運用它們來解耦數據訪問邏輯,提高代碼的可測試性和可維護性。 對象關係映射(ORM)的本質與權衡: ORM 工具極大地簡化瞭數據庫操作,但其內部機製和潛在的性能問題並非總被開發者充分理解。本書將深入淺齣地剖析 ORM 的工作原理,解釋其如何進行對象與數據庫錶之間的映射,以及它可能帶來的性能開銷(如 N+1 查詢問題、延遲加載的陷阱等)。在理解原理的基礎上,我們還將指導讀者如何根據具體場景,選擇閤適的 ORM 配置和使用方式,或者在必要時,如何繞過 ORM,直接編寫高效的 SQL 查詢,實現性能的最優化。 數據訪問層的架構設計: 如何組織和劃分數據訪問代碼,使其易於理解、擴展和復用?本書將提供關於如何構建清晰、模塊化數據訪問層架構的建議,包括如何分離數據訪問邏輯與業務邏輯,如何進行單元測試和集成測試,以及如何為未來的重構和技術升級做好準備。 並發控製與數據一緻性: 在多用戶、高並發的環境下,如何確保數據的一緻性和完整性是一個嚴峻的挑戰。本書將探討常見的並發控製技術,如悲觀鎖、樂觀鎖,以及事務管理的重要性。我們將分析不同場景下的數據一緻性需求,並提供相應的解決方案,幫助您構建齣能夠應對高並發挑戰的健壯係統。 性能優化與調優: 即使模型設計良好,代碼邏輯清晰,糟糕的數據庫交互也可能導緻應用性能低下。本書將提供一套係統的性能分析和優化方法,從數據庫查詢的執行計劃分析,到索引的閤理使用,再到緩存策略的運用,幫助您找到並解決性能瓶頸,提升應用的響應速度和用戶體驗。 數據遷移與版本控製: 隨著業務的發展,數據庫結構往往需要不斷演進。如何安全、高效地管理數據庫的變更,並確保數據在不同版本之間的一緻性?本書將介紹數據遷移的理念和常用工具,幫助您建立起一套可靠的數據庫版本控製和遷移流程。 本書適閤誰? 初級到中級軟件開發者: 希望係統性學習數據訪問層設計和實現,擺脫對某個特定 ORM 框架的“黑盒”依賴,構建更優質的數據驅動應用。 有經驗的軟件架構師: 尋求更深入地理解數據訪問的原理和最佳實踐,為團隊製定數據訪問層技術選型和架構規範。 需要提升應用性能和可維護性的團隊: 正在經曆數據庫性能瓶頸,或數據訪問代碼變得難以維護的團隊,需要一套行之有效的改進方案。 對底層原理有探究精神的開發者: 不滿足於錶麵 API 的調用,渴望理解 ORM 如何工作,數據庫是如何交互的,從而更精準地掌控開發過程。 本書的承諾: 我們承諾,《現代數據驅動應用開發:從容駕馭數據復雜性》將為您提供一套通用、實用且具有前瞻性的數據訪問開發指南。本書將以清晰的邏輯、豐富的案例和深入的解析,幫助您: 構建齣更加健壯和可維護的數據訪問層。 有效避免常見的性能陷阱,提升應用響應速度。 更從容地應對復雜業務場景下的數據處理需求。 培養獨立思考和解決數據訪問相關問題的能力。 為構建現代化、可擴展的軟件係統奠定堅實的基礎。 我們將帶領您一起,深入探尋數據驅動應用的本質,掌握駕馭數據復雜性的藝術。拋開對特定工具的片麵依賴,聚焦核心原則,讓您的數據驅動開發能力實現質的飛躍。

用戶評價

評分

這本書的封麵設計簡潔大方,深邃的藍色背景搭配銀白色的書名,給人一種專業而又充滿智慧的感覺。我一直對數據持久化和ORM技術很感興趣,特彆是 Entity Framework,它在.NET生態係統中扮演著舉足輕重的角色。市麵上關於 EF 的書籍不少,但很多要麼過於理論化,要麼隻講解皮毛,很難觸及核心的精髓。我期待這本書能夠提供一種更實操、更深入的學習路徑,從基礎的概念講起,逐步深入到高級的應用技巧。比如,我特彆想瞭解在復雜的業務場景下,如何優雅地處理實體之間的關係,如何優化查詢性能以應對海量數據的挑戰,以及如何在實際項目中運用 EF 的遷移功能來平滑地更新數據庫結構。同時,我也希望書中能包含一些關於 EF Core 的最新特性和最佳實踐,畢竟技術的更新迭代非常快,跟上最新的發展纔能保持競爭力。如果書中能分享一些實際項目中的經驗教訓,以及一些常見問題的解決方案,那將是錦上添花。例如,在處理並發衝突時,有哪些行之有效的策略?在進行大規模數據導入導齣時,又該如何保證效率和數據的準確性?這些都是我在日常開發中經常會遇到的難題。我非常期待這本書能夠成為我學習 Entity Framework 的得力助手,幫助我更好地掌握這項強大的技術,並在實際項目中揮灑自如。

評分

在我看來,一本優秀的數據庫訪問技術書籍,不僅僅是羅列 API 列錶,更重要的是能夠幫助讀者理解技術背後的設計理念和最佳實踐。這本書的書名“實用精要”讓我對其抱有很高的期望。我尤其關注書中是否能夠深入剖析 Entity Framework 的工作原理,例如它如何將 LINQ 查詢轉化為 SQL 語句,以及它在對象關係映射方麵的具體實現。我希望能看到關於 EF 的性能調優技巧,比如如何有效地使用 `Include` 和 `ThenInclude` 來加載相關數據,如何針對復雜查詢進行手動優化,以及如何利用 EF 的緩存機製來提升應用程序的響應速度。此外,對於 EF Core 的一些新特性,比如 GraphQL 集成、性能監控以及與 Azure Cosmos DB 等 NoSQL 數據庫的集成,如果書中能夠有所涉獵,那將極大地提升其價值。我也期待書中能夠探討 EF 在不同項目場景下的應用,例如在 Web API、桌麵應用,甚至是批處理任務中的最佳實踐。如果還能包含一些關於 EF 的測試策略,如何編寫單元測試和集成測試來保證數據訪問的健壯性,那這本書在我眼中就堪稱是“精要”中的“精要”瞭。

評分

我是一名初學者,最近開始接觸 .NET 開發,並且聽說瞭 Entity Framework 的強大之處,所以想找一本入門級的書籍來係統學習。這本書的書名“實用精要”讓我覺得它可能不會像某些教材那樣枯燥乏味,而是更側重於教會我如何快速上手並解決實際問題。我希望這本書能夠從最基礎的概念開始,比如如何建立數據庫連接,如何通過 EF Code-First 或 Database-First 的方式生成實體模型,以及如何進行基本的 CRUD(增刪改查)操作。我特彆希望能看到清晰的代碼示例,能夠讓我一步一步地跟著做。同時,我也想瞭解 EF 中的關係映射,比如一對一、一對多、多對多的關係是如何定義的,以及如何在 LINQ 中進行導航查詢。對於初學者來說,一些常見的陷阱和錯誤解決方案也至關重要,如果書中能夠包含一些“避坑指南”,那將是非常寶貴的。此外,如果書中還能簡單介紹一下 EF 的事務管理,以及如何在 Web 應用中使用 EF,那就更完美瞭。總之,我希望這本書能像一位耐心的老師,一步步引導我走進 Entity Framework 的世界,讓我能夠自信地運用它來完成我的開發任務。

評分

剛拿到這本書,就被它厚重的質感和細緻的排版所吸引。我是一名有著多年開發經驗的.NET開發者,在工作中經常需要處理數據庫操作,而 Entity Framework 則是我們團隊首選的ORM框架。雖然我們團隊已經在使用 EF,但總感覺在某些方麵還有提升的空間。我一直希望能夠找到一本能夠係統性梳理 EF 核心概念,並深入講解其高級特性的書籍。這本書的書名“實用精要”讓我眼前一亮,它暗示著這本書會聚焦於那些真正有用的、能夠解決實際問題的知識點,而不是泛泛而談的理論。我特彆關注書中是否會詳細介紹 LINQ to Entities 的強大功能,以及如何寫齣高效、可讀性強的查詢語句。此外,對於 EF 的性能優化,例如如何避免 N+1 查詢問題,如何利用索引和查詢跟蹤來提升效率,這些都是我非常感興趣的內容。我還想瞭解書中是否會涉及 EF 的一些進階主題,比如倉儲模式、Unit of Work 模式的實現,以及如何將 EF 集成到 ASP.NET Core 的項目中,並且能夠處理好異步操作。最後,如果書中能提供一些關於 EF 在微服務架構中的應用案例,或者與 DDD(領域驅動設計)結閤的實踐經驗,那將是我莫大的驚喜,也更能體現齣這本書的“精要”之處。

評分

我一直在尋找一本能夠幫助我更深入理解 Entity Framework 核心機製的書籍。這本書的標題“實用精要”聽起來非常吸引人,暗示它將提供真正有價值且易於掌握的知識。我最感興趣的部分是關於 EF 的高級特性和性能優化。例如,我希望能夠深入瞭解 EF 的並發控製機製,以及如何有效地處理樂觀並發和悲觀並發。對於查詢優化,我渴望學習如何通過分析 EF 生成的 SQL 語句來發現性能瓶頸,並掌握更高級的 LINQ 技巧,例如使用 `AsEnumerable()`、`ToList()` 和 `AsTracking()` 等方法時的性能差異。此外,書中是否會涉及 EF 的自定義行為,比如如何實現自定義攔截器來記錄 SQL 語句,或者如何擴展 EF 的功能來滿足特定的業務需求。我也非常想瞭解 EF 在分布式係統中的應用,例如如何將其與 RabbitMQ 或 Kafka 等消息隊列結閤使用,以及如何在多實例部署環境下保證數據的一緻性。如果書中還能包含一些關於 EF 的安全方麵的內容,例如如何防止 SQL 注入,以及如何進行敏感數據的加密處理,那將為這本書增添更多的實用價值。

評分

專業的書,喜歡

評分

很好很強大很好很強大很好很強大

評分

很好很強大很好很強大很好很強大

評分

很棒的一本書,.NET開發必學

評分

看瞭幾天,感覺不錯,值得購買

評分

看瞭幾天,感覺不錯,值得購買

評分

很棒的一本書,.NET開發必學

評分

看瞭幾天,感覺不錯,值得購買

評分

看瞭幾天,感覺不錯,值得購買

相關圖書

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 book.tinynews.org All Rights Reserved. 静思书屋 版权所有