Entityframework Core in action是 Jon P smith
所著的關於Entityframework Core 書籍。原版地址. 是除了官方文檔外另外一個學習EF Core的不錯途徑, 書中由淺入深的講解的EF Core的相關知識。由於沒有中文版,因此本人對其進行翻譯。 預計每兩天一篇更新 PS: 翻譯不免限於本人水平有不許確的地方,建議英文水平不錯的同窗直接查看原版,有不足的地方歡迎指正html
本書的目的是讓讀者掌握如何快速,正確的編寫EF Core數據庫訪問代碼,並實現高性能. 圍繞着 "快速、正確、性能" 這些方面,我提供了大量的示例,其中包含大量的技巧和技術. 在講解的過程當中,我加入了不少EF Core內部原理的內容,由於當數據庫訪問代碼沒法按照預期工做時,這些將會幫助你進行分析. 微軟的文檔也是學習Entity Framework Core不錯的選擇,可是它沒有提供詳細的示例. 在本書中,我嘗試爲每一個功能提供一個示例,你會在Git倉庫中找到單元測試代碼(參見 "關於代碼" 部分的連接). 有時閱讀單元測試代碼會比書中的內容更容易理解,因此單元測試是一種有用的資源.git
本書面向的是從未使用過EF和經驗豐富的EF6x開發人員,以及想要了解EF Core的人. 本書假設讀者已經熟悉C#,Net開發,而且對關係型數據庫有所瞭解, 不要求對C#多太過深刻的瞭解,可是若是你初學C#,可能會發現有些代碼難以閱讀,由於我不會講解C#,但我會提供一個關於Linq(語言集成查詢)的附錄github
本書的路徑是從基礎(第1部分)開始,深刻理解(第2部分),最後以實用的工具和技術(第3部分)結束
我不會假設讀者從頭至尾的閱讀這本書,但至少略讀前5章會幫助讀者理解我在書中後面使用到的基礎知識數據庫
第1章經過第一個簡單的控制檯應用介紹EF core,你將看到EF Core的每一個部分. 我還概述了EF Core的工做原理以及爲何你會愛上它.架構
第2章介紹了查詢(從數據庫中讀取數據),我將介紹存儲在數據庫中的數據之間的關係,以及如何使用EF Core加載相關數據併發
第3章介紹了更改數據庫中的數據: 添加、更新、刪除工具
第4章介紹瞭如何使用EF Core構建健壯的業務邏輯數據庫訪問代碼,業務邏輯是應用程序解決特定業務問題
時所實現的業務規則或工做流代碼
的名稱性能
第5章是關於構建使用EF Core的ASP.Net Core應用程序,它彙總了第2章到第4章的內容建立了一個Web應用程序,我還談到了部署Web應用程序和訪問託管數據庫單元測試
第6章介紹了配置非關係屬性 -- 包含值(如int、string、DateTime等)的屬性學習
第7章介紹了關係的配置-- 類之間的關係, 例如Book包含一個或多個Author. 還講解了特殊的映射方式,例如將多個類映射到一個表
第8章介紹了高級映射功能以及檢測和處理併發衝突
第9章深刻討論EF Core的DbContext的工做原理,並逐一介紹應用程序的DbContext中各個方法和屬性的做用
第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倉庫中的代碼,你須要如下內容
開發環境 (我對原文進行了簡化)
注: 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源碼和其餘有用的資源的連接