SL259 9787302500179 9787302485933 9787302465041
《你掌握的Entity Framework 6.x與Core 2.0 》共四篇,內容分為19章,一篇(第~3章)講述Entity Framework 6.x基礎,並深入講解如何創建過濾索引、遷移的本質等;第二篇(第4~8章)講述Entity Framework 6.x進階,充分闡述Entity Framework 6.x背後隱藏的原理、性能優化、並發解析等;第三篇(第9、10章)講述Entity Framework Core 2.0基礎,並對Entity Framework Core每一版本所齣現的新特性進行詳細介紹和深入研究;第四篇(第11~19章)講述Entity Framework Core 2.0進階,內容包括Entity Framework Core變更追蹤策略、創建上下文實例方式、性能優化,結閤Entity Framework Core 2.0特性實現多租戶模式,利用Entity Framework Core進行數據審計、並發解析等。
《你掌握的Entity Framework 6.x與Core 2.0 》適閤ASP.NET開發人員閱讀,也適閤高等院校和培訓學校相關專業的師生作為教學參考書。
第一篇 Entity Framework 6.x基礎
第1章 Entity Framework的發展 3
1.1 Entity Framework版本介紹 3
1.2 Entity Framework 領域建模方式 4
1.2.1 Code First 4
1.2.2 Model First 5
1.2.3 Database First 5
1.3 使用Entity Framework Code First 6.x 的原因 6
1.4 小結 6
第2章 數據庫錶的創建和遷移 7
2.1 數據庫連接和初始化策略 7
2.1.1 數據庫連接 7
2.1.2 數據庫初始化策略 10
2.2 約定 11
2.2.1 類型發現 11
2.2.2 主鍵約定 12
2.2.3 關係約定 13
2.2.4 復雜類型約定 14
2.2.5 自定義約定 15
2.3 基於代碼配置 22
2.4 配置屬性映射和關係映射 24
2.4.1 屬性映射 25
2.4.2 關係映射 42
2.4.3 私有化屬性映射 56
2.5 繼承映射策略 58
2.5.1 Table per Hierarchy(TPH) 58
2.5.2 Table per Type(TPT) 59
2.5.3 Table per Concrete class(TPC) 62
2.5.4 Entity Splitting 65
2.5.5 Table Splitting 67
2.6 代碼遷移 69
2.6.1 遷移命令 69
2.6.2 遷移的本質 73
第3章 實體狀態和數據操作 82
3.1 實體狀態 82
3.2 數據操作 84
3.2.1 數據查詢 85
3.2.2 數據保存 102
3.2.3 自動生成存儲過程 112
3.3 避免陷阱 115
3.3.1 導航屬性查詢 115
3.3.2 分頁查詢 116
3.3.3 語義可空 117
3.3.4 錶值函數 119
3.3.5 日期操作 121
3.4 基礎篇實戰 122
第二篇 Entity Framework 6.x進階
第4章 上下文管理和變更追蹤原理 137
4.1 上下文生命周期管理 137
4.1.1 基礎模式追溯 137
4.1.2 生命周期追溯 139
4.1.3 進化模式追溯 142
4.2 變更追蹤原理 144
4.2.1 快照式變更追蹤 144
4.2.2 代理式變更追蹤 146
第5章 變更追蹤原理和日誌管理 155
5.1 DetectChanges原理 155
5.1.1 DetectChanges的用途 155
5.1.2 調用DetectChanges方法的時機 157
5.1.3 關閉自動調用DetectChanges方法 159
5.1.4 遺忘的二進製屬性和復雜類型 162
5.2 日誌記錄 165
5.2.1 ToString打印 165
5.2.2 簡單日誌打印 166
5.2.3 結構化日誌輸齣 169
5.2.4 構造塊攔截 171
5.2.5 攔截器異常性能監控 175
5.2.6 攔截器解決EF 6.1忽略字符串空格曆史遺留問題 187
5.3 事務 191
5.4 連接彈性 212
第6章 並發衝突 217
6.1 初級版解析 217
6.2 中級版解析 222
6.2.1 客戶端獲勝 223
6.2.2 數據庫獲勝 224
6.2.3 客戶端和數據庫閤並獲勝 225
6.3 高級版解析 226
6.3.1 簡單重試策略 226
6.3.2 Polly重試策略 227
第7章 性能優化實踐 231
7.1 優化一:預編譯視圖 231
7.2 優化二:減少首次與數據庫交互的代碼 235
7.3 優化三:NGen安裝Entity Framework 程序集 237
7.4 優化四:AsNoTracking 239
7.5 優化五:緩存 239
7.6 優化六:重新編譯查詢 245
7.7 優化七:避免“N+1”Select查詢 249
7.8 優化八:添加索引 251
7.9 優化九:關閉迴調DetectChanges方法 255
7.10 優化十:使用異步查詢 257
第8章 Entity Framework 6.x實戰 258
8.1 工作單元泛型倉儲模式 258
8.2 依賴注入泛型倉儲模式 278
第三篇 Entity Framework Core 2.0基礎
第9章 數據庫錶的創建和遷移 295
9.1 數據庫初始化策略 295
9.2 配置屬性映射和關係映射 298
9.2.1 屬性映射 300
9.2.2 Backing Fields 311
9.2.3 Alternate Keys 316
9.2.4 Shadow Property 317
9.2.5 Owned Entities 321
9.2.6 HasQueryFilter修改 322
9.2.7 關係映射 327
9.2.8 繼承映射 346
9.3 代碼遷移 351
9.3.1 控製颱程序遷移 351
9.3.2 Web應用程序遷移 353
9.3.3 多個上下文遷移 364
9.3.4 腳手架逆嚮遷移 367
第10章 數據操作和初始化數據 371
10.1 實體狀態 371
10.2 數據操作 371
10.2.1 數據查詢 371
10.2.2 數據保存 393
10.3 無連接實體 398
10.4 初始化數據 401
第四篇 Entity Framework Core 2.0進階
第11章 性能優化實踐 407
11.1 AsNoTracking 407
11.2 EF.Functions.Like 410
11.3 自定義標量函數 412
11.4 顯式編譯查詢 416
11.5 上下文實例池 419
第12章 查詢實體元數據和模型數據驗證 424
12.1 查詢元數據 424
12.2 內置模型驗證 426
12.3 第三方擴展模型驗證 429
第13章 上下文實例創建方式 432
13.1 顯式創建上下文實例 432
13.1.1 帶有構造函數的OnConfiguring方法 432
13.1.2 傳遞連接字符串參數到構造函數 433
13.1.3 使用不帶依賴注入的DbContextOptions 433
13.2 依賴注入容器創建上下文實例 434
13.2.1 帶有無參構造函數的DI 434
13.2.2 帶DbContextOptions的DI 434
13.3.3 使用泛型DbContextOptions 435
13.3.4 使用AddDbContext/AddDbContextPool 436
第14章 實現多租戶 437
第15章 捕獲審計數據 446
第16章 變更追蹤策略和日誌管理 451
16.1 變更追蹤策略 451
16.1.1 INotifyPropertyChanged 453
16.1.2 INotifyPropertyChanging 457
16.2 日誌管理 458
16.2.1 添加控製颱包輸齣 458
16.2.2 自定義日誌輸齣 459
第17章 xUnit單元測試 462
17.1 控製颱單元測試 463
17.2 NET Core Web應用程序單元測試 465
第18章 事務和並發衝突 468
18.1 事務 468
18.2 並發衝突 473
18.2.1 初級版解析 474
18.2.2 中級版解析 478
18.2.3 高級版解析 482
第19章 Entity Framework Core 2.1 待發布 488
本書旨在幫助讀者進入 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
第1章 MVC開發前奏 1
1.1 開發環境搭建 1
1.1.1 操作係統和開發工具 1
1.1.2 開發環境配置 3
1.1.3 VS常用快捷鍵 7
1.1.4 VS技巧 8
1.2 常用輔助開發工具介紹 10
1.2.1 Firebug 10
1.2.2 HttpRequester 12
1.3 知識儲備 13
1.3.1 必備知識介紹 13
1.3.2 樹立軟件開發信心 13
1.4 C#語法新特性 14
1.4.1 C# 2.0 新特性 14
1.4.2 C# 3.0/C# 3.5 新特性 16
1.4.3 C# 4.0新特性 26
1.4.4 C#5.0新特性 28
第2章 Entity Framework 29
2.1 Entity Framework簡介 29
2.1.1 與ADO.NET的關係 29
2.1.2 什麼是O/R Mapping 29
2.1.3 ORM in EF 30
2.1.4 EF的優缺點 30
2.2 Database First 開發方式 31
2.2.1 創建Dtabase First Demo 31
2.2.2 EF原理 34
2.3 Entity Framework增刪改查 37
2.3.1 附加數據庫 37
2.3.2 新建項目 39
2.3.3 新增 39
2.3.4 簡單查詢和延時加載 40
2.3.5 根據條件排序和查詢 42
2.3.6 分頁查詢 43
2.3.7 修改 43
2.3.8 刪除 45
2.3.9 批處理 46
2.4 EF查詢相關 48
2.4.1 IQueryable與IEnumberable接口的區彆 48
2.4.2 LINQ To EF 48
2.4.3 關於EF對象的創建問題 50
2.4.4 關於上下文的使用注意事項 51
2.4.5 EF 跨數據庫支持 51
2.5 Model First 開發方式 51
2.5.1 創建Model First Demo 52
2.5.2 經驗分享 60
2.6 Code First 開發方式 60
2.6.1 創建Code First Demo 61
2.6.2 關於EF實例的創建問題 68
第3章 初識MVC 69
3.1 MVC簡介與三層架構 70
3.1.1 MVC簡介 70
3.1.2 三層架構 71
3.2 ASP.NET的兩種開發方式 72
3.2.1 ASP.NET開發現狀 72
3.2.2 WebForms的開發方式 73
3.2.3 ASP.NET MVC的開發方式 74
3.3 第一個ASP.NET MVC程序 75
3.3.1 創建項目 75
3.3.2 項目框架結構說明 77
3.3.3 路由——映射URL到Action 79
3.3.4 返迴string的MVC方法 81
3.3.5 簡單瞭解Razor視圖 81
3.3.6 ASP.NET MVC組件之間的關係 82
3.4 MVC的約定 82
3.4.1 控製器的約定大於配置 83
3.4.2 視圖的相關約定 83
第4章 MVC進階 84
4.1 View詳解 84
4.1.1 View和Action之間數據傳遞的方式 84
4.1.2 TempData、ViewData和ViewBag的區彆 85
4.2 Razor視圖引擎 88
4.2.1 什麼是 Razor 88
4.2.2 Razor 語法 89
4.2.3 Razor 布局——整體視圖模闆 92
4.2.4 Razor 布局——ViewStart 93
4.2.5 Razor 布局——部分視圖 93
4.2.6 視圖引擎 95
4.2.7 MVC視圖的“秘密” 96
4.3 Controller 98
4.3.1 Action方法參數與返迴值 98
4.3.2 Action指定使用視圖 100
4.3.3 View和Controller之間的關係 102
4.4 Model和驗證 104
4.4.1 Net MVC請求處理流程 104
4.4.2 MVC模型驗證 104
4.5 HtmlHelper 111
4.5.1 HtmlHelper的Action、錶單標簽 112
4.5.2 HtmlHelper的弱類型與強類型方法 113
4.5.3 HtmlHelper的RenderPartial 116
4.5.4 HtmlHelper的RenderAction 116
4.5.5 HtmlHelper擴展方法 117
4.6 ASP.NET MVC分頁 118
4.6.1 HtmlHelper 118
4.6.2 局部視圖 124
4.6.3 MvcPager 127
4.6.4 第三方UI組件 131
第5章 MVC核心透析 132
5.1 MVC Routing 132
5.1.1 Routing——URL 133
5.1.2 Routing的作用 134
5.1.3 Routing包含字麵值的URL 134
5.1.4 Routing測試 135
5.2 異步Ajax 137
5.2.1 傳統Ajax實現方式 137
5.2.2 Unobtrusive Ajax使用方式 140
5.2.3 AjaxHelper 141
5.2.4 請求Json數據 144
5.3 MVC Areas 146
5.3.1 Area使用入門 146
5.3.2 Area注冊類放到單獨程序集 148
5.3.3 Area注冊控製器放到單獨程序集 150
5.4 MVC Filter 151
5.4.1 Action 152
5.4.2 Result 153
5.4.3 AuthorizeAttribute 157
5.4.4 Exception 158
5.5 MVC整體運行流程 159
5.5.1 進入管道 159
5.5.2 路由注冊 162
5.5.3 創建MvcHandler對象 164
5.5.4 執行MvcHandler ProcessRequest方法 166
5.5.5 調用控製器裏麵的Action方法 169
5.5.6 根據Action方法返迴的ActionResult加載View 172
第6章 網站性能和安全優化 175
6.1 緩存 175
6.2 壓縮閤並css和js 178
6.3 刪除無用的視圖引擎 179
6.4 使用防僞造令牌來避免CSRF攻擊 181
6.5 隱藏ASP.NET MVC版本 182
6.6 Nginx服務器集群 182
6.6.1 Nginx是什麼 182
6.6.2 Nginx的應用現狀和特點 184
6.6.3 Nginx的事件處理機製 184
6.6.4 Nginx不為人知的特點 186
6.6.5 Nginx的內部模型 186
6.6.6 Nginx如何處理請求 188
6.6.7 Nginx典型的應用場景 188
6.6.8 Nginx的應用 189
6.6.9 Nginx常見配置說明 190
6.6.10 集群案例 195
6.7 常用的Web安全技術手段 197
第7章 NHibernate 199
7.1 NHibernate簡介 199
7.1.1 什麼是NHibernate 199
7.1.2 NHibernate的架構 199
7.1.3 NHibernate與其Entity Framework框架比較 200
7.2 第一個NHibernate應用程序 201
7.2.1 搭建項目基本框架 201
7.2.2 編寫映射文件 206
7.2.3 添加數據訪問層類 209
7.2.4 添加業務邏輯層類 210
7.2.5 添加控製器和視圖 211
7.3 增刪改查詢 212
7.4 使用代碼映射 213
7.4.1 NHibernate入職Demo 214
7.4.2 NHibernate代碼映射高級功能 217
7.5 監聽NHibernate生成的SQL 224
7.5.1 使用show_sql 224
7.5.2 使用NHibernateProfile 225
第8章 IoC 、Log4Net和Quartz.Net 228
8.1 Unity 228
8.1.1 獲取Unity 228
8.1.2 Unity簡介 229
8.1.3 Unity API 229
8.1.4 使用Unity 229
8.2 Spring.Net 234
8.2.1 Web.config中的屬性注入 234
8.2.2 在單獨的配置文件中構造函數注入 238
8.3 Log4Net 240
8.3.1 配置Log4Net環境 240
8.3.2 Log4Net相關概念 244
8.4 Quartz.Net 244
8.4.1 Quartz.Net概述 244
8.4.2 參考資料 244
8.4.3 Quartz.Net使用示例 245
第9章 分布式技術 256
9.1 WebService 256
9.1.1 創建一個WebService並調用 256
9.1.2 調用天氣預報服務 259
9.2 WCF 262
9.2.1 什麼是WCF 262
9.2.2 理解麵嚮服務 263
9.2.3 WCF體係架構簡介 263
9.2.4 WCF的基礎概念介紹 264
9.2.5 創建第一個WCF程序 269
9.2.6 WCF和WebService的區彆 276
9.3 Web API 276
9.3.1 創建WebAPI 277
9.3.2 調用WebAPI 278
9.3.3 WebAPI授權 282
9.3.4 WebAPI的調試 285
9.4 Memcached 285
9.4.1 Memcached簡介 285
9.4.2 Memcached 基本原理 287
9.4.3 Memcached服務端的安裝 288
9.4.4 C#操作Memcached 290
9.5 Redis 292
9.5.1 Redis簡介 292
9.5.2 Redis與Memcached的比較 292
9.5.3 Redis環境部署 293
9.5.4 Redis常用數據類型 296
9.5.5 給Redis設置密碼 302
9.5.6 Redis主從復製 303
9.6 MongoDB 306
9.6.1 MongoDB簡介 306
9.6.2 下載安裝和配置 307
9.6.3 使用mongo.exe 執行數據庫增刪改查操作 311
9.6.4 更多命令 313
9.6.5 MongoDB語法與現有關係型數據庫SQL語法比較 315
9.6.6 可視化的客戶端管理工具MongoVUE 315
9.6.7 通過C#的samus驅動進行操作 317
9.6.8 索引 320
第10章 站內搜索 323
10.1 SEO 323
10.1.1 SEO簡介 323
10.1.2 開發時要考慮SEO 324
10.1.3 關於搜索 326
10.2 Lucene.Net簡介和分詞 328
10.2.1 Lucene.Net簡介 328
10.2.2 分詞 329
10.2.3 盤古分詞算法的使用 332
10.3 最簡單的搜索引擎代碼 334
10.4 搜索的第一個版本 340
10.5 搜索的優化版 349
10.5.1 熱詞統計 349
10.5.2 熱門搜索 354
10.5.3 標題和內容都支持搜索並高亮展示 357
10.5.4 與查詢、或查詢、分頁 358
第11章 財務對賬係統 366
11.1 需求 366
11.2 前颱UI框架搭建 367
11.3 菜單特效 374
11.4 麵闆摺疊和展開 376
11.5 tab多頁簽支持 379
11.6 Controller和View的交互 381
11.7 增改查匹配 389
11.8 統計報錶 407
11.9 服務器端排序 425
11.10 從ASP.NET MVC中導齣Excel文件 428
11.10.1 異步導齣 429
11.10.2 實時導齣 431
11.11 數據同步 432
第12章 通用角色權限管理係統 434
12.1 需求分析 434
12.2 技術選型 434
12.3 數據庫設計 435
12.4 架構搭建 439
12.4.1 新建解決方案和項目 439
12.4.2 通用層搭建 441
12.4.3 數據訪問層搭建 442
12.4.4 業務邏輯層 459
12.4.5 UI層 465
12.5 功能實現 466
12.5.1 用戶登錄 466
12.5.2 采用分布式的方式記錄異常日誌 472
12.5.3 授權 474
12.5.4 增刪改查 475
12.6 運行項目 475
评分
评分
评分
评分
评分
评分
评分
评分
本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度,google,bing,sogou 等
© 2025 tushu.tinynews.org All Rights Reserved. 求知書站 版权所有