你必須掌握的 Entity Framework 6.x 與 Core 2.0
內容描述
《你必須掌握的Entity Framework 6.x與Core 2.0 》針對Entity Framework 6.x和Entity Framework Core 2.0以通俗易懂的語言進行深入、全面的探討,並結合實例來介紹如何靈活運用。
《你必須掌握的Entity Framework 6.x與Core 2.0 》共四篇,內容分為19章,第一篇(第1~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
作者介紹
作者:汪鵬
汪鵬,網名Jeffcky,湖南嶽陽人,博客園推薦博主,微軟MVP(微軟最有價值專家),擁有多年Entity Framework開發經驗,樂於分享,對於Entity Framework的性能優化有深刻理解。