1. 程式人生 > 其它 >[.NET學習] EFCore學習之旅 -1

[.NET學習] EFCore學習之旅 -1

1.建立專案 

  這裡我們先新建一個控制檯專案:“jyq.EFCore.Learn”,框架基於.NET6

  

2.安裝 Neget包

  Install-Package Microsoft.EntityFrameworkCore.SqlServer

3.建立實體類

  這裡我們建立幾個用來測試的實體類:Book ,Person ,將其都放在Models資料夾下面

  

  

  

4.建立配置類

  所謂配置類,就是針對我們的實體類要在資料庫中建立的表的列配置我們需要的一些屬性,比如BookName 我們希望它的最大長度是50,它是不可空的等等配置

  EFCore提供了一個 IEntityTypeConfiguration的配置介面。

  這裡我們需要注意的是,EFCore中是約定大於配置的。什麼意思呢,就是說EFCore根據我們的實體類建立表的時候,如果你沒有為自己的實體類配置某些特性,

那麼,EFCore會根據預設的約定來建立表。比如BookName的資料型別是 string 型別的,那麼它的預設約定可能就是最大長度是 max,並且是可空的,此處需要注意。

  這裡我們新建一個"EntityConfigs"的資料夾,將我們實現的配置類都放在此目錄下。

  

  

  

5.建立資料庫上下文

  建立一個數據庫上下文類 “AppDbContext” 並繼承 DbContext。並新增兩個DbSet:DbSet<Book>,DbSet<Person>.

後續新增的實體類,都需要在上下文類中新增一個DbSet,否則EFCore是不會幫你對映到資料庫中的。

  

  接下來我們需要重寫父類的OnConfiguring 方法,在方法體內配置我們要連線的資料庫以及對應的資料庫連線字串

  

  然後再重寫OnModelCreating方法,在方法體內加入我們在第四步建立的配置類。  

  

  這裡說明一下,我們直接使用程式集配置,告訴EFCore你的實體配置類所在的程式集名稱,它會自動載入程式集內所有

實現了IEntityTypeConfiguratuin介面的配置類,因為這裡我們的類都在一個程式集裡面,所有直接給定當前程式集就可以了。

6.Migration 資料庫遷移

  資料庫遷移,就是EFCore幫我們根據實體類建立對應的表。當然,資料庫遷移是可以分為多步的,什麼意思呢,就是表在

建立之後如果你的實體類有修改,比如新增欄位或者刪減欄位,那麼我們可以再次使用遷移將此修改同步到資料庫中。

  使用資料庫遷移,需要安裝一個Negut包:Install-Package Microsoft.EntityFrameworkCore.Tools。資料庫遷移的工作就是

由這個工具來完成的。

  安裝完成之後,就可以使用遷移命令來實現對應的操作啦。

  使用的命令如下 Add-Migration Init 。其中Add-Migration是遷移命令,Init是本次遷移命令的操作命名,最好我們取一個有意義

的名稱,以便後續進行相關操作時能知道當時都進行了哪些操作。當然,在此過程中需要你的專案編譯OK,否則會報錯。

  遷移完成後,會自動在專案的目錄下生成一個Migrations的資料夾,同時資料夾下會有兩個遷移類,類裡面就是EFCore在建立

資料庫和表的時候要執行的C#語句。

  

  

  遷移完成之後,在使用命令 Update-DataBase 將資料同步到資料庫中。

  開啟資料庫可以看到我們的表已經建立成功了。

  

  

7.實體類修改

  假如隨著專案版本的迭代,我們的實體類需要做一些修改,那麼修改後我們如何把資料同步到資料庫中呢。

  這裡我們以 Book類新增一個Author欄位,Person新增一個BirthPlace欄位,同時新增一個實體類 Student。

新增的實體類配置我們就不再贅述了,參考前面的步驟。

  完成配置之後,我們再次使用遷移命令 Add-Migration AddStudent_AddAuthor_AddBirthPlace,然後在更新

到資料中 Update-Database。  

  開啟資料庫可以看到,我們新增的欄位和實體類都更新進去了。

  

  

  

  

8.結束

  以上就是本次學習的全部內容。通過本次學習將學會如何搭建EFCore環境,如果配置實體類,如何進行資料庫遷移等等。

下一節我們通過EFCore來做一些簡單的CRUD操作。