Entity Framework Core in Action
Entityframework Core in action是
Jon P smith
所著的關于Entityframework Core 書籍。原版位址. 是除了官方文檔外另一個學習EF Core的不錯途徑, 書中由淺入深的講解的EF Core的相關知識。因為沒有中文版,是以本人對其進行翻譯。 預計每兩天一篇更新 PS: 翻譯難免限于本人水準有不準确的地方,建議英文水準不錯的同學直接檢視原版,有不足的地方歡迎指正
第一部分目錄導航
關于這本書
本書的目的是讓讀者掌握如何快速,正确的編寫EF Core資料庫通路代碼,并實作高性能. 圍繞着 "快速、正确、性能" 這些方面,我提供了大量的示例,其中包含大量的技巧和技術. 在講解的過程中,我加入了很多EF Core内部原理的内容,因為當資料庫通路代碼無法按照預期工作時,這些将會幫助你進行分析. 微軟的文檔也是學習Entity Framework Core不錯的選擇,但是它沒有提供詳細的示例. 在本書中,我嘗試為每個功能提供一個示例,你會在Git倉庫中找到單元測試代碼(參見 "關于代碼" 部分的連結). 有時閱讀單元測試代碼會比書中的内容更容易了解,是以單元測試是一種有用的資源.
本書适合什麼樣的讀者
本書面向的是從未使用過EF和經驗豐富的EF6x開發人員,以及想要了解EF Core的人. 本書假設讀者已經熟悉C#,Net開發,并且對關系型資料庫有所了解, 不要求對C#多太過深入的了解,但是如果你初學C#,可能會發現有些代碼難以閱讀,因為我不會講解C#,但我會提供一個關于Linq(語言內建查詢)的附錄
本書内容是如何組織的
本書的路徑是從基礎(第1部分)開始,深入了解(第2部分),最後以實用的工具和技術(第3部分)結束
我不會假設讀者從頭到尾的閱讀這本書,但至少略讀前5章會幫助讀者了解我在書中後面使用到的基礎知識
Part 1 : 基礎
第1章通過第一個簡單的控制台應用介紹EF core,你将看到EF Core的每個部分. 我還概述了EF Core的工作原理以及為什麼你會愛上它.
第2章介紹了查詢(從資料庫中讀取資料),我将介紹存儲在資料庫中的資料之間的關系,以及如何使用EF Core加載相關資料
第3章介紹了更改資料庫中的資料: 添加、更新、删除
第4章介紹了如何使用EF Core建構健壯的業務邏輯資料庫通路代碼,業務邏輯是應用程式解決
特定業務問題
時所實作的
業務規則或工作流代碼
的名稱
第5章是關于建構使用EF Core的ASP.Net Core應用程式,它彙總了第2章到第4章的内容建立了一個Web應用程式,我還談到了部署Web應用程式和通路托管資料庫
Part 2 : 深入了解Entity Framework core
第6章介紹了配置非關系屬性 -- 包含值(如int、string、DateTime等)的屬性
第7章介紹了關系的配置-- 類之間的關系, 例如Book包含一個或多個Author. 還講解了特殊的映射方式,例如将多個類映射到一個表
第8章介紹了進階映射功能以及檢測和處理并發沖突
第9章深入讨論EF Core的DbContext的工作原理,并逐一介紹應用程式的DbContext中各個方法和屬性的作用
Part 3 : 在真實的應用程式中使用Entity Framework Core
第10章是工具,模式和技巧的概要,可以讓你使用EF Core更快速的開發和使代碼更加健壯,我還介紹了如何在領域驅動設計方法中使用EF Core
第11章介紹了使用EF Core時更改資料庫結構的所有方式,它還包括當你更改實時應用程式所使用的資料庫結構時出現的問題
第12章列出了所有可能影響資料庫通路性能的問題以及如何處理它們
第13章是一個優化EF Core應用程式性能的示例,我使用第1部分中開發的圖書應用程式進行三個級别的性能調優
第14章從介紹更改資料庫類型時會發生什麼開始,然後介紹一種可以提升某些業務應用程式性能的程式架構,最後以通路和修改EF Core的内部服務結束
第15章是關于使用EF Core進行單元測試的應用程式,我還建立了一個nuget包,你可以使用它幫助你進行單元測試
注: 我在書的章節中都添加了有關EF Core2.1特性的注釋,這些指出了2.1版在哪些方面相比較EF 2.0有了新選擇
關于代碼
我覺得,隻有編寫代碼才會真正的對某些功能或特性有深入的了解. 在git倉庫中每章甚至章的部分都有一個自己的分支, 倉庫位址可以在這裡找到 https://github.com/liangshiw/EfCoreInAction (原位址: https://github.com/JonPSmith/EfCoreInAction). 有關更多資訊,請參見git倉庫Readme的
在哪裡找到代碼
部分 https://github.com/liangshiw/EfCoreInAction/blob/master/README.md#wheres-the-code (原位址: https://github.com/JonPSmith/EfCoreInAction/blob/master/README.md#wheres-the-code)
注: 第15章内容是關于單元測試的,它有自己的git倉庫 https://github.com/liangshiw/EfCore.TestSupport (原位址: https://github.com/JonPSmith/EfCore.TestSupport)
我之是以将它與前14章分開是因為它包含的工具和功能可以幫助你進行單元測試,你還可以将
EfCore.TestSupport
包安裝到你的項目中,使用我在15章中描述的功能
編寫代碼或運作git倉庫中的代碼,你需要以下内容
開發環境 (我對原文進行了簡化)
- Visual Studio 2017
- 也可以使用Visual Studio Code,我在每個分支中設定了.vscode目錄,可以正确的建構,測試和運作代碼
- .Net Core SDK
注: git倉庫太多使用的是.Net Core 2.0,但是我将一些分支更新到了.Net Core 2.1,參見 https://github.com/liangshiw/EfCoreInAction#net-core-21-examples (原位址: https://github.com/JonPSmith/EfCoreInAction#net-core-21-examples)
其他資源
以下是微軟文檔,EF Core源碼和其他有用的資源的連結
- 微軟 EF Core 文檔: https://docs.microsoft.com/zh-cn/ef/core/index
- EF Core路線圖: https://github.com/aspnet/EntityFrameworkCore/wiki/roadmap
- EF Core源碼: https://github.com/aspnet/EntityFrameworkCore
- ASP.NET Core與EF Core共同使用的教程: https://docs.microsoft.com/zh-cn/aspnet/core/data/
- Stack Overflow EF Core tag: [entity-framework-core] https://stackoverflow.com