《你必須掌握的Entity Framework 6.x與Core 2.0》是2018年清華大學出版社出版的圖書,作者是汪鵬。
基本介紹
- 中文名:你必須掌握的Entity Framework 6.x與Core 2.0
- 作者:汪鵬
- 出版社:清華大學出版社
- 出版時間:2018年07月01日
- 定價:99 元
- ISBN:9787302500179
圖書簡介,圖書目錄,
圖書簡介
《你必須掌握的EntityFramework6.x與Core2.0》針對EntityFramework6.x和EntityFrameworkCore2.0以通俗易懂的語言進行深入、全面的探討,並結合實例來介紹如何靈活運用。
《你必須掌握的EntityFramework6.x與Core2.0》共四篇,內容分為19章,第一篇(第1~3章)講述EntityFramework6.x基礎,並深入講解如何創建過濾索引、遷移的本質等;第二篇(第4~8章)講述EntityFramework6.x進階,充分闡述EntityFramework6.x背後隱藏的原理、性能最佳化、並發解析等;第三篇(第9、10章)講述EntityFrameworkCore2.0基礎,並對EntityFrameworkCore每一版本所出現的新特性進行詳細介紹和深入研究;第四篇(第11~19章)講述EntityFrameworkCore2.0進階,內容包括EntityFrameworkCore變更追蹤策略、創建上下文實例方式、性能最佳化,結合EntityFrameworkCore2.0特性實現多租戶模式,利用EntityFrameworkCore進行數據審計、並發解析等。
《你必須掌握的EntityFramework6.x與Core2.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