使用EF CORE遷移數(shù)據(jù)庫(kù)
一、遷移需要的依賴
Install-Package Microsoft.EntityFrameworkCore.SqlServer -version 3.1.1 Install-Package Microsoft.EntityFrameworkCore.Tools -version 3.1.1 Install-Package Microsoft.EntityFrameworkCore.Design -version 3.1.1
二、遷移方式
- 程序包管理器控制臺(tái) , Package Manager Console(PMC)
? 如果你用visual studio 開發(fā)建議使用PMC遷移方式,該方式是同時(shí)支持efcore和原先的ef 遷移的
- 命令行工具 ,Command line interface (CLI)
? 該方式適用于跨平臺(tái)開發(fā)的時(shí)候進(jìn)行遷移數(shù)據(jù)庫(kù)的,也就是可脫離visual studio,比如你用vs code,或直接打開cmd控制臺(tái)進(jìn)行操作
- 命令對(duì)比
| 遷移命令描述 | CLI命令 | PMC命令 |
|---|---|---|
| 創(chuàng)建遷移:migrationname為遷移名稱 | dotnet ef migrations add migrationName | add-migration migrationName |
| 移除遷移(刪除最近的一次遷移) | dotnet ef migrations remove | remove-migration |
| 應(yīng)用所有的遷移(使遷移文件應(yīng)用到數(shù)據(jù)庫(kù)) | dotnet ef database update | update-database |
| 指定版本進(jìn)行遷移 | dotnet ef database update migrationName | update-database migrationName |
| 生成對(duì)應(yīng)版本的腳本 | dotnet ef migrations script | Script-Migration |
| 查看遷移列表 | dotnet ef migrations list | |
| 查看數(shù)據(jù)庫(kù)上下文信息 | dotnet ef dbcontext info |
三、使用
程序包管理器控制臺(tái) , Package Manager Console(PMC)打開visual studio 程序包管理控制臺(tái),首先要善于使用pmc的幫助,輸入get-help 查看幫助信息,根據(jù)提示我們可以輸入 get-help about_entityframework 獲取幫助信息,輸入命令后我們應(yīng)該能看到一只霸氣的野馬頭像 ,頭像下面就是efcore的相關(guān)幫助文檔了 ,入下圖:

add-migration 這個(gè)命令一般都不會(huì)有啥問題輸入命令回車在輸入遷移名稱就ok
remove-migration 這個(gè)也是如果想刪除最后一次遷移 直接執(zhí)行就好
update-database 第一步添加一個(gè)遷移文件成功后,可以用該命令直接更新到數(shù)據(jù)庫(kù),默認(rèn)是所有遷移,如果想指定遷移直接加上遷移文件的名字就好了,如:update-database migrationName,也相當(dāng)于版本回滾操,比如有版本1,2,3 此時(shí)我想回滾到版本1 就直接 update-database 1,此時(shí)數(shù)據(jù)庫(kù)中已經(jīng)更新到1版本了,然后在兩次remove-migration把2和3的遷移文件刪除就好了
Script-Migration 這個(gè)命令用于生成遷移文件對(duì)應(yīng)的sql語句的,跟之前的ef貌似有些不一樣,該命令如果不加任何參數(shù) 是默認(rèn)生成所有遷移文件對(duì)應(yīng)的sql語句,當(dāng)然也參照格式指定餐宿
Script-Migration -From migrationName1 -To migrationName2 -Context ContextName
最后溫馨提示 使用 Get-Help 即可獲取對(duì)應(yīng)命令文檔,如 get-help update-databa
跨平臺(tái)命令行工具 ,Command line interface (CLI)打開vscode 命令終端 輸入dotnet ef 后也能看到一只霸氣野馬的頭像,也將列出相關(guān)幫助信息
- dotnet ef migrations add 生成一條遷移
- dotnet ef migrations remove 刪除最新一次遷移
- dotnet ef database update 生成遷移到數(shù)據(jù)庫(kù),跟上面pmc命令類似 后面加指定的遷移作為參數(shù)可以進(jìn)行版本的回滾
- dotnet ef migrations script 也跟pmc類似 如果沒有任何參數(shù)的話默認(rèn)是生成所有sql腳本,但是參數(shù)格式略有不同如下:dotnet ef migrations script
- migrationName1 migrationName2 ; 是像這樣直接跟遷移名稱的也就是生成migrationName1 到migrationName2 的sql腳本
到此這篇關(guān)于EF CORE遷移數(shù)據(jù)庫(kù)的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 在.NET Core類庫(kù)中使用EF Core遷移數(shù)據(jù)庫(kù)到SQL Server的方法
- asp.net mvc CodeFirst模式數(shù)據(jù)庫(kù)遷移步驟詳解
- ASP.NET?Core使用EF為關(guān)系數(shù)據(jù)庫(kù)建模
- ASP.NET?Core基于現(xiàn)有數(shù)據(jù)庫(kù)創(chuàng)建EF模型
- ASP.NET?Core使用EF?SQLite對(duì)數(shù)據(jù)庫(kù)增刪改查
- Asp.Net Core中創(chuàng)建多DbContext并遷移到數(shù)據(jù)庫(kù)的步驟
- .net core下配置訪問數(shù)據(jù)庫(kù)操作
相關(guān)文章
asp.net下Request.QueryString取不到值的解決方法
2008-01-01
.NET開發(fā)基礎(chǔ):從簡(jiǎn)單的例子理解泛型 分享
.Net開發(fā)基礎(chǔ)系列文章,對(duì)自己之前寫過的代碼備忘,如能給人予幫助,不甚榮幸。個(gè)人能力有限,如有差錯(cuò)或不足,請(qǐng)及時(shí)指正。2013-06-06
Asp.net中Microsoft.Identity的IPasswordHasher加密的默認(rèn)實(shí)現(xiàn)與運(yùn)用
本文主要介紹了Microsoft.Identity的IPasswordHasher加密的默認(rèn)實(shí)現(xiàn)與運(yùn)用。具有很好的參考價(jià)值,下面跟著小編一起來看下吧2017-02-02
ASP.NE網(wǎng)站發(fā)布注意事項(xiàng)簡(jiǎn)析
ASP.NET網(wǎng)站部署到IIS中的關(guān)鍵點(diǎn),本文介紹了一些ASP.NE網(wǎng)站在發(fā)布是需要注意事項(xiàng),需要了解的朋友可以參考下2012-12-12
一文帶你了解.Net基于Threading.Mutex實(shí)現(xiàn)互斥鎖
互斥鎖是一個(gè)互斥的同步對(duì)象,意味著同一時(shí)間有且僅有一個(gè)線程可以獲取它。這篇文章主要介紹了一文帶你了解.Net基于Threading.Mutex實(shí)現(xiàn)互斥鎖,感興趣的可以了解一下2021-06-06
.Net平臺(tái)開發(fā)實(shí)踐的一些點(diǎn)滴總結(jié)(技術(shù)規(guī)范與實(shí)踐精華)
以下是本人對(duì).Net平臺(tái)開發(fā)實(shí)踐的一些點(diǎn)滴總結(jié)。這里的技術(shù)規(guī)范主要是開發(fā)過程的代碼規(guī)范、數(shù)據(jù)庫(kù)設(shè)計(jì)規(guī)范、Com和.Net互操作規(guī)范;實(shí)踐精華是對(duì)技術(shù)實(shí)踐過程中的部分總結(jié)。2010-04-04
asp.net實(shí)現(xiàn)access數(shù)據(jù)庫(kù)分頁的方法
這篇文章主要介紹了asp.net實(shí)現(xiàn)access數(shù)據(jù)庫(kù)分頁的方法,很實(shí)用的access操作技巧,需要的朋友可以參考下2014-08-08
ASP.Net MVC_DotNetZip簡(jiǎn)單使用方法,解決文件壓縮的問題
下面小編就為大家?guī)硪黄狝SP.Net MVC_DotNetZip簡(jiǎn)單使用方法,解決文件壓縮的問題。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-06-06
asp.net 獲取Datalist中Checkbox的值的小結(jié)
最近開發(fā)過程中遇到一個(gè)小問題,要獲取checkbox的值,在網(wǎng)上搜索了一下,發(fā)現(xiàn)基本上都是用JS實(shí)現(xiàn)的,現(xiàn)在我將自己的做法記錄一下,以便以后繼續(xù)使用。2010-04-04

