Entity Framework Core in Action
Entityframework Core in action是
Jon P smith
所著的關于Entityframework Core 書籍。原版位址. 是除了官方文檔外另一個學習EF Core的不錯途徑, 書中由淺入深的講解的EF Core的相關知識。因為沒有中文版,是以本人對其進行翻譯。 預計每兩天一篇更新 PS: 翻譯難免限于本人水準有不準确的地方,建議英文水準不錯的同學直接檢視原版,有不足的地方歡迎指正
第一部分目錄導航
MyFirstEfCoreApp應用程式設定
建立了.Net Core控制應用程式過後,現在可以編寫EF Core代碼了. 在編寫資料庫通路代碼之前,你需要做兩個重要的部分
- EF Core将類映射到資料庫中的表
- 應用程式的DbContext,它是用于配置和通路資料庫的主類
映射到資料庫中的類 -- Book和Author
EF Core将類映射為資料庫中的表. 是以你需要建立一個實體類,或者你已有一個資料庫則需要比對資料庫表. 有很多的規則和配置(本書後面會介紹), 圖1.4給出了映射到資料庫表的實體類的一般格式
下面是
Author
實體類的定義,它的結構與Book類相同,主鍵遵循EF Core命名約定(參見第6.3.15節). Book類有一個名為AuthorId的屬性,EF Core将它視為外鍵,因為它與Author實體的主鍵同名
public class Author
{
public int AuthorId { get; set; }
public string Name { get; set; }
public string WebUrl { get; set; }
}
應用程式中的DbContext(資料庫上下文)
另一個重要的部分是應用程式的DBContext. 這是繼承自EF Core的DbContext的類. 它包含EF Core配置資料庫所需的資訊,也是在代碼中通路資料庫時使用的類(參見 1.9.2節). 圖1.5展示了MyFirstEfCoreApp控制台應用使用的DbContext (名為AppDbContext)
在我們的小型示例中,模組化的所有細節都是由EF Core完成的,它通過使用約定來解決問題. 你有很多其他方法告訴EF Core資料庫模型的配置,這些指令會讓這個小示例變的複雜,是以暫時不做介紹. 在第6章和第7章中介紹了所有的配置選擇
本示例中使用了一種方法定義控制台應用程式的DbContext: 覆寫應用程式的DbContext的OnConfiguring方法,提供EF Core需要的資料庫類型和連接配接字元串等其他資訊. 這種方法的缺點是它的連接配接字元串是固定的,不利于單元測試
在ASP.NET Core應用程式中這是一個問題, 因為在不同的環境: 開發,測試,生産我們會使用不同的資料庫. 在第2章中我們将建構一個ASP.NET Core Web應用程式,将會使用一個不同的方式來更改資料庫連接配接字元串(參見2.2.2節)