2、Entity Framework Core 3.1入門教程-建立資料庫和遷移

hllive發表於2020-08-26

本文章是根據 微軟MVP solenovex(楊旭)老師的視訊教程編寫而來,再加上自己的一些理解。
視訊教程地址:https://www.bilibili.com/video/BV1xa4y1v7rR
GitHub原始碼:https://github.com/hllive/LearnEFCore3.1

1、概述

如何生成資料庫以及後來發生變化進行遷移

生成遷移的流程

  • 1、建立Model相當於是要對映到資料庫中的表
  • 2、建立Migration遷移檔案(對原始碼版本控制友好)
  • 3、使用Migration遷移檔案來生成資料庫或生成指令碼

執行要求
AppDbContext 這個類是在Data類庫專案中,而Data專案型別是一個類庫,想讓EFCore生成資料庫或資料遷移的話,它必須有一個可執行檔案,所以它這一個專案是不能執行的。
那麼就得需要依靠【Web應用程式】,它能生成可執行檔案,就得通過它來生成資料庫。
除此之外,Migration還所需的安裝庫,(這兩個庫在上節中已經安裝)

  • 1、Microsoft.EntityFrameworkCore.Design
  • 2、Microsoft.EntityFrameworkCore.Tools

安裝好包後需要執行一些遷移用到的命令,遷移命令需要在【程式包管理器控制檯】中執行;怎麼開啟程式包管理器控制檯:選單中的【檢視】=>【其他視窗】=>【程式包管理器控制檯】
在控制檯中的【預設專案】選為Data,也就是包含AppDbContext類的專案

通過執行以下命令可以檢視幫助

get-help entityframework

常用的兩個命令

  • Add-Migration  新增一個遷移檔案
  • Update-Database  把遷移檔案應用到資料庫,執行資料庫的更新或建立

2、執行遷移

add-migration inital

inital是新增遷移檔案的命名(可以自定義)

執行遇到以下錯誤

解決方案:將WebApi應用程式設為啟用專案,選中【WebApi專案】右擊選擇【設為啟用專案】

再執行又遇到以下錯誤

解決方案:這個提示是說在WebApi專案中沒有安裝Microsoft.EntityFrameworkCore.Design,我們在WebApi專案上安裝Microsoft.EntityFrameworkCore.Design包就可以了
看到以下情況這就是執行成功了

執行成功後在Data專案生成Migrations資料夾

第一個檔案叫xxxx_inital檔案就是我們命名的遷移檔案
xxxxModelSnapshot相當於是一個快照,這個檔案非常重要,不能手動去改,EFCore使用這個檔案來追蹤當前所有Model的變更狀態

3、生成資料庫或指令碼

  • 1、Update-Database  將資料庫更新為指定的遷移,可以新增引數-verbose檢視執行過程中的一些明細
  • 2、Script-Migration  從遷移檔案中生成一個指令碼(通常在生產環境中使用)執行命令後會自動開啟生成的指令碼檔案


看到Done結果就說明已經生成和更新資料庫成功,通過【SQL Serve物件資源管理器】可以檢視生成後的資料庫的情況。

這種先寫Model再生成資料的辦法叫Code Frist(程式碼優先)

部落格文章可以轉載,但不可以宣告為原創

相關文章