EFCore資料庫遷移命令整理

来源:https://www.cnblogs.com/fighting2014/archive/2018/02/23/8460954.html
-Advertisement-
Play Games

前言 因為現在用.net core 開發新項目,過程中需要經常涉及到數據命令的遷移,今天分別整EFCore 的兩種遷移資料庫的方式 1 程式包管理器控制台 , Package Manager Console(PMC) -如果你用visual studio 開發建議使用PMC遷移方式,該方式是同時支持 ...


前言 

     因為現在用.net core 開發新項目,過程中需要經常涉及到數據命令的遷移,今天分別整EFCore 的兩種遷移資料庫的方式 

1 程式包管理器控制台 , Package Manager Console(PMC)

       -如果你用visual studio 開發建議使用PMC遷移方式,該方式是同時支持efcore和原先的ef 遷移的

2 命令行工具 ,Command line interface (CLI)

       -該方式適用於跨平臺開發的時候進行遷移資料庫的,也就是可脫離visual studio,比如你用vs code,或直接打開cmd控制台進行操作

 

1.下麵先列出兩種方式對比,然後再分用vs 和vscode分別詳細說明

遷移命令描述CLI命令PMC命令
創建遷移:migrationname為遷移名稱 dotnet ef migrations add migrationName add-migration migrationName
移除遷移(刪除最近的一次遷移) dotnet ef migrations remove remove-migration
應用所有的遷移(使遷移文件應用到資料庫) dotnet ef database update update-database
指定版本進行遷移 dotnet ef database update migrationName update-database migrationName
生成對應版本的腳本 dotnet ef migrations script Script-Migration
查看遷移列表 dotnet ef migrations list  
查看資料庫上下文信息 dotnet ef dbcontext info  

 

 

 

 

 

 

 

 

2.程式包管理器控制台 , Package Manager Console(PMC)

   打開visual studio 程式包管理控制台,首先要善於使用pmc的幫助,輸入get-help 查看幫助信息,根據提示我們可以輸入 get-help about_entityframework  獲取幫助信息,輸入命令後我們應該能看到一隻霸氣的野馬頭像 ,頭像下麵就是efcore的相關幫助文檔了 ,入下圖

 

  1. add-migration  這個命令一般都不會有啥問題輸入命令回車在輸入遷移名稱就ok

  2. remove-migration 這個也是如果想刪除最後一次遷移 直接執行就好

  3. update-database 第一步添加一個遷移文件成功後,可以用該命令直接更新到資料庫,預設是所有遷移,如果想指定遷移直接加上遷移文件的名字就好了,如:update-database migrationName,也相當於版本回滾操,比如有版本1,2,3 此時我想回滾到版本1  就直接 update-database 1,此時資料庫中已經更新到1版本了,然後在兩次remove-migration把2和3的遷移文件刪除就好了

  4. Script-Migration  這個命令用於生成遷移文件對應的sql語句的,跟之前的ef貌似有些不一樣,該命令如果不加任何參數 是預設生成所有遷移文件對應的sql語句,當然也參照格式指定餐宿

     Script-Migration -From migrationName1 -To migrationName2  -Context ContextName

     有意思的是 ,它不會生成from對應的遷移文件的sql,也就是說想上面這麼寫只會生生成migrationName2的sql語句,那麼問題來了 ,需要生成第一個遷移文件的sql怎麼辦?經過查看官方文檔,需要指定from參數為0,也就是  Script-Migration -From 0

  5. 最後溫馨提示 使用 Get-Help <cmdlet-name>即可獲取對應命令文檔,如 get-help update-databa

     

 

3 跨平臺命令行工具 ,Command line interface (CLI)

  打開vscode  命令終端 輸入dotnet ef 後也能看到一直霸氣野馬的頭像,也將列出相關幫助信息

1.dotnet ef migrations add  生成一條遷移

2.dotnet ef migrations remove  刪除最新一次遷移

3. dotnet ef  database  update 生成遷移到資料庫,跟上面pmc命令類似 後面加指定的遷移作為參數可以進行版本的回滾

4.dotnet ef migrations script   也跟pmc類似  如果沒有任何參數的話預設是生成所有sql腳本,但是參數格式略有不同如下:dotnet ef migrations script migrationName1  migrationName2 ; 是像這樣直接跟遷移名稱的也就是生成migrationName1 到migrationName2 的sql腳本

 

相關鏈接:

官方文檔:https://docs.microsoft.com/en-us/ef/core/miscellaneous/cli/

efcore相對之前ef的一些變更:https://msdn.microsoft.com/magazine/mt614250

efcore反向工程dbfirst:https://code.msdn.microsoft.com/How-to-using-Entity-1464feea

 

 

本文永久更新地址:http://siyouku.cn/article/6871.html

asp.net core 開發框架:https://github.com/2014fighting/CodeFrame.Web.git

 

 
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • var array=['REG','2018','2018']; array.indexOf(‘REG’) // 0 array.indexOf(‘R’) // -1 array.indexOf(’2018′) // 1 array.indexOf(2018) // -1 var array=['R ...
  • Routing 到目前為止,我們已經解決了MVC的很多問題,但忽略了最基本的最重要的一個問題:當用戶發送請求時,會發生什麼? 最好的答案是“執行Action 方法”,但仍存在疑問:對於一個特定的URL請求,如何確定控制器和action 方法。在開始實驗31之前,我們首先來解答上述問題,你可能會困惑為 ...
  • 在前面的文章中,我們已經知道如何合併、拆分多個PDF文件,在這篇文章中的合併、拆分PDF文檔主要是以方便文檔管理的目的來操作文檔,在文檔查閱、管理及存儲上很方便實用。但是我們如果想要合併多個文檔中的部分文檔頁的內容,該如何來做呢?可以參考接下來將要介紹的合併方法。 PS: 本篇文章是對Free Sp ...
  • using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.... ...
  • IL DASM反編譯工具 使用C#的猿人或多或少都會對微軟的IL反編譯工具(ildasm.exe)有所認識。我最早接觸到這工具是公司同事使用他反編譯exe程式,進行研讀和修改。感覺他還是很強大。 IL是微軟平臺上的一門中間語言,我們常寫的C#代碼在編譯器中都會自動轉換成IL,然後在由即時編譯器(JI ...
  • 依照老周的良好作風,開始之前先說點題外話。 前面的博文中,老周介紹過自定義 MVC 視圖的搜索路徑,即向 ViewLocationFormats 列表添加相應的內容,其實,對 Razor Page 模型,也可以向 PageViewLocationFormats 列表添加相應的搜索路徑,比如 /MyP ...
  • 上一篇Redis的系列已經講了Redis的下載、安裝,接下來這一篇,主要講使用Redis提供的 ServiceStack.Redis 這個開發庫在C#項目中作為緩存服務使用的一個簡單示例,廢話不多話,直接上代碼。 ...
  • 線程是怎樣工作的 1.多線程由一個線程調度器來進行內部管理,一個功能是CLR常常委托給操做系統。 一個線程調度器確保所有激活的線程在執行期間被合適的分配,等待或者阻塞的線程(比如,一個獨占鎖或者等待用戶輸入)不占用CPU資源。 2.在單核電腦上,一個線程調度器讓時間片在每一個激活的線程中切換。在wi ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...