你必須掌握的 Entity Framework 6.x 與 Core 2.0

你必須掌握的 Entity Framework 6.x 與 Core 2.0

作者: 汪鵬
出版社: 清華大學
出版在: 2018-07-01
ISBN-13: 9787302500179
ISBN-10: 7302500177
裝訂格式: 平裝
總頁數: 488 頁





內容描述


《你必須掌握的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的性能優化有深刻理解。




相關書籍

Spring Batch 權威指南 (The Definitive Guide to Spring Batch: Modern Finite Batch Processing in the Cloud)

作者 [美]邁克爾·T.米內拉(Michael T. Minella) ;張坤 張淵 譯

2018-07-01

零基礎入門智能家居設計:基於 C#語言與 Proteus 的實例應用

作者 劉波 夏初蕾

2018-07-01

Visual C# 2013 程式設計初學者的16堂課, 3/e

作者 榮欽科技 王震寰

2018-07-01