2、Entity Framework Core 3.1入門教程-創建資料庫和遷移
- 2020 年 8 月 26 日
- 筆記
- efcore, Entity Framework Core
本文章是根據 微軟MVP solenovex(楊旭)老師的影片教程編寫而來,再加上自己的一些理解。
影片教程地址://www.bilibili.com/video/BV1xa4y1v7rR
GitHub源碼://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(程式碼優先)
部落格文章可以轉載,但不可以聲明為原創