EF Core 數據庫遷移命令參考

在使用 Entity Framework Core 時,若你希望通過 Package Manager Console (PMC) 執行遷移相關命令,以下是常用的 EF Core 遷移命令:

PMC 方式

? 常用 EF Core PMC 命令(適用于遷移)

操作PMC 命令
添加遷移Add-Migration MigrationName
更新數據庫到最新遷移Update-Database
回滾一個遷移Update-Database -ToMigration PreviousMigrationName
刪除最后一次遷移(未應用到數據庫)Remove-Migration
查看遷移歷史Get-Migrations
生成 SQL 腳本(從某一遷移到另一遷移)Script-Migration -From MigrationA -To MigrationB
生成 SQL 腳本(所有遷移)Script-Migration

📝 示例:

  • 假設你添加了一個名為 InitialCreate 的遷移:
Add-Migration InitialCreate
  • 然后將更改應用到數據庫:
Update-Database
  • 如果想回退到上一個遷移:
Update-Database -ToMigration PreviousMigrationName

?? 注意事項:

  1. 使用這些命令前,請確保:

    • 已安裝 Microsoft.EntityFrameworkCore.Tools NuGet 包;
    • Visual Studio 中打開了 Package Manager Console
    • 默認項目(Default project 下拉框)選擇的是包含 DbContext 的項目。
  2. 如果你使用的是多項目結構,請確保啟動項目和遷移所在項目一致或已正確配置設計時工廠(IDesignTimeDbContextFactory)。

CLI 方式

以下是 EF Core 對應于 CLI(命令行接口)的常用遷移命令,適用于 .NET CLI 工具:


? 常用 EF Core CLI 遷移命令

操作CLI 命令
添加遷移dotnet ef migrations add MigrationName
刪除最后一次遷移dotnet ef migrations remove
更新數據庫dotnet ef database update
更新數據庫到指定遷移dotnet ef database update TargetMigrationName
查看遷移歷史dotnet ef migrations list
生成 SQL 腳本(從某一遷移到另一遷移)dotnet ef migrations script -o output.sql FromMigration ToMigration
生成 SQL 腳本(所有遷移)dotnet ef migrations script -o output.sql

📝 示例:

  • 添加一個名為 InitialCreate 的遷移:
dotnet ef migrations add InitialCreate
  • 應用遷移到數據庫:
dotnet ef database update
  • 回退到某個特定遷移:
dotnet ef database update PreviousMigrationName
  • 刪除最后一次遷移(尚未應用到數據庫時):
dotnet ef migrations remove
  • 生成從 MigrationAMigrationBSQL 腳本:
dotnet ef migrations script -o migration_diff.sql MigrationA MigrationB

?? 注意事項:

  1. 使用前請確保:

    • 已安裝 .NET SDK
    • 項目中已引用 Microsoft.EntityFrameworkCore.DesignMicrosoft.EntityFrameworkCore.Tools
    • 你的項目是可啟動項目或已正確配置 DbContext
  2. 如果使用多項目結構,請在 CLI 中切換到包含 DbContext 的項目目錄,或使用 -p 參數指定項目路徑。例如:

dotnet ef migrations add MyMigration -p ./MyProject/MyProject.csproj

🧠 選擇合適的方式

EF CorePMCPackage Manager Console)和 CLI(命令行接口)的遷移命令功能相同,但語法不同:

  • PMC 使用 Add-MigrationUpdate-Database 等 PowerShell 風格命令;
  • CLI 使用 dotnet ef migrations adddotnet ef database update 等 .NET CLI 命令。

在選擇 EF Core 遷移命令方式時,根據使用場景可以做如下推薦:

? 推薦使用 PMC(Package Manager Console)

  • 適用人群:Visual Studio 用戶、不熟悉命令行操作的開發者;
  • 優點
    • 操作簡單,集成在 Visual Studio 中;
    • 不需要切換終端或目錄;
    • 支持自動補全和命令提示。
  • 缺點
    • 只能在 Windows 上使用;
    • 不適合自動化腳本。

📌 當你在 Visual Studio 中開發 ASP.NET Core 或 .NET Framework 項目時,首選 PMC。


? 推薦使用 CLI(.NET Command Line Interface)

  • 適用人群:跨平臺開發者、CI/CD 自動化用戶、偏好命令行者;
  • 優點
    • 跨平臺支持(Windows、macOS、Linux);
    • 易于集成到構建腳本、CI 流程中;
    • 更貼近現代 .NET 開發流程。
  • 缺點
    • 需要熟悉命令格式;
    • 在多項目結構中需手動指定項目路徑。

📌 如果你使用 VS Code、Rider 或進行持續集成部署,首選 CLI。


總結一句話推薦:

  • PM 面向 Visual Studio 快速開發場景,CLI 更適合跨平臺與自動化流程。
    根據你的開發環境和團隊協作方式選擇最合適的方式即可。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/80905.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/80905.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/80905.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

商業 |阿里云又丟出了核彈

行業翹首以盼的DeepSeek-R2沒等到,阿里云卻先一步丟出了核彈。 4月29日凌晨,阿里云正式上線了Qwen3系列模型“全家桶”,包含2個MoE模型、6個稠密模型。 八個模型,小到0.6B大到235B,既能在手機使用,也有旗…

《Python星球日記》 第66天:序列建模與語言模型

名人說:路漫漫其修遠兮,吾將上下而求索。—— 屈原《離騷》 創作者:Code_流蘇(CSDN)(一個喜歡古詩詞和編程的Coder??) 目錄 一、傳統語言模型1. n-gram 模型基礎2. n-gram 模型的局限性二、RNN 在語言建模中的應用1. 語言模型的基本原理2. RNN 構建語言模型的優勢3. 實…

20250510解決NanoPi NEO core開發板在Ubuntu core22.04.3系統下適配移遠的4G模塊EC200A-CN的問題

1、h3-eflasher-friendlycore-jammy-4.14-armhf-20250402.img.gz 在WIN10下使用7-ZIP解壓縮/ubuntu20.04下使用tar 2、Win32DiskImager.exe 寫如32GB的TF卡。【以管理員身份運行】 3、TF卡如果已經做過會有3個磁盤分區,可以使用SD Card Formatter/SDCardFormatterv5…

C# 的異步任務中, 如何暫停, 繼續,停止任務

namespace taskTest {using System;using System.Threading;using System.Threading.Tasks;public class MyService{private Task? workTask;private readonly SemaphoreSlim semaphore new SemaphoreSlim(0, 1); // 初始為 0,Start() 啟動時手動放行private read…

關于nextjs中next-sitemap插件生成文件樣式丟失問題及自定義樣式處理

現象沒有默認樣式 修改后 代碼配置如下 next-sitemap.config.js如下 // const { routing } require(./src/i18n/routing) ;const { flatten } require(lodash) const fs require(fs); const path require(path);// 改為硬編碼locales值,與routing.ts保持一…

圖片的require問題

問題 <template><!--第一種方式--><img :src"require(/assets/${imageName})" style"width:100px;" /><!--第二種方式--><img :src"require(imageUrl)" style"width:100px;" /> </template><…

【官方題解】StarryCoding 入門教育賽 2 | acm | 藍橋杯 | 新手入門

比賽傳送門&#xff1a; 本場比賽開始時題面存在一些問題&#xff0c;私密馬賽&#xff01; A.池化【入門教育賽】 根據題目所給公式計算即可。 #include "bits/stdc.h"signed main() {int t; std::cin >> t;while (t --) {int l, k, s, p; std::cin >&…

課題推薦——低成本地磁導航入門,附公式推導和MATLAB例程運行演示

地磁導航利用地球磁場的自然特性&#xff0c;通過感知磁場變化&#xff0c;幫助機器人或無人設備實現定位和導航。相比于 GPS、激光雷達等導航方法&#xff0c;地磁導航具有以下優勢&#xff1a; 低成本&#xff1a;使用地磁傳感器&#xff08;如電子羅盤&#xff09;&#xff…

【人工智能】自然語言編程革命:騰訊云CodeBuddy實戰5步搭建客戶管理系統,效率飆升90%

CodeBuddy 導讀一、產品介紹1.1 **什么是騰訊云代碼助手&#xff1f;**1.2 插件安裝1.2.1 IDE版本要求1.2.2 注意事項1.2.4 插件安裝1.2.4.1 環境安裝1.2.4.2 安裝騰訊云AI代碼助手** 1.2.5 功能介紹1.2.5.1 Craft&#xff08;智能代碼生成&#xff09;1.2.5.2 Chat&#xff08…

游戲引擎學習第270天:生成可行走的點

回顧并為今天的內容定下基調 今天的計劃雖然還不完全確定&#xff0c;可能會做一些內存分析&#xff0c;也有可能暫時不做&#xff0c;因為目前并沒有特別迫切的需求。最終我們會根據當下的狀態隨性決定&#xff0c;重點是持續推動項目的進展&#xff0c;無論是 memory 方面還…

Java反射詳細介紹

的反射&#xff08;Reflection&#xff09;是一種強大的機制&#xff0c;允許程序在運行時動態獲取類的信息、操作類的成員&#xff08;屬性、方法、構造器&#xff09;&#xff0c;甚至修改類的行為。它是框架開發&#xff08;如 Spring、MyBatis&#xff09;、單元測試工具&a…

c語言第一個小游戲:貪吃蛇小游戲05

貪吃蛇脫韁自動向右走&#xff1a;脫韁的野蛇 #include <curses.h> #include <stdlib.h> struct snake{ int hang; int lie; struct snake *next; }; struct snake *head; struct snake *tail; void initNcurse() { initscr(); keypad(stdscr,1); } int …

react-diff-viewer 如何實現語法高亮

前言 react-diff-viewer 是一個很好的 diff 展示庫&#xff0c;但是也有一些坑點和不完善的地方&#xff0c;本文旨在描述如何在這個庫中實現自定義語法高亮。 Syntax highlighting is a bit tricky when combined with diff. Here, React Diff Viewer provides a simple rend…

coco數據集mAP評估

0 coco數據集劃分說明 1 用yolo自帶的評估 from ultralytics import YOLOmodel YOLO("../spatial-perception/checkpoints/yolo11n.pt")metrics model.val(data"./coco.yaml", save_jsonTrue) ## save_json為True,可以把預測結果存成json文件&#xff…

sensitive-word-admin v2.0.0 全新 ui 版本發布!vue+前后端分離

前言 sensitive-word-admin 最初的定位是讓大家知道如何使用 sensitive-word&#xff0c;所以開始想做個簡單的例子。 不過秉持著把一個工具做好的原則&#xff0c;也收到很多小伙伴的建議。 v2.0.0 在 ruoyi-vue&#xff08;也非常感謝若依作者多年來的無私奉獻&#xff09…

好消息!PyCharm 社區版現已支持直接選擇 WSL 終端為默認終端

在過去&#xff0c;PyCharm 社區版雖然提供了鏈接 Windows 子系統 Linux&#xff08;WSL&#xff09;終端的能力&#xff0c;但用戶無法在設置中直接指定 WSL 為默認終端&#xff0c;這一功能僅限于專業版使用者。 而現在&#xff0c;在 PyCharm 2025.1.1 版本中&#xff0c;Je…

【Redis】string 字符串

文章目錄 string 字符串常用命令設置和獲取setgetmget & mset 計數操作incr & incrbydecr & decrbyincrbyfloat 字符串操作appendstrlengetrangesetrange 應用場景 string 字符串 關于 Redis 的字符串&#xff0c;有幾點需要注意 Redis 所有的 key 的類型都是字符…

本地部署firecrawl的兩種方式,自托管和源碼部署

網上資料很多 AI爬蟲黑科技 firecrawl本地部署-CSDN博客 源碼部署 前提條件本地安裝py&#xff0c;node.js環境,嫌棄麻煩直接使用第二種 使用git或下載壓縮包 git clone https://github.com/mendableai/firecrawl.git 設置環境參數 cd /firecrawl/apps/api 復制環境參數 …

(三)毛子整潔架構(Infrastructure層/DapperHelper/樂觀鎖)

文章目錄 項目地址一、Infrastructure Layer1.1 創建Application層需要的服務1. Clock服務2. Email 服務3. 注冊服務 1.2 數據庫服務1. 表配置Configurations2. Respository實現3. 數據庫鏈接Factory實現4. Dapper的DataOnly服務實現5. 所有數據庫服務注冊 1.3 基于RowVersion的…

uni-app微信小程序登錄流程詳解

文章目錄 uni-app微信小程序登錄流程實戰詳解微信小程序登錄流程概述1. 獲取登錄憑證&#xff08;code&#xff09;2. 發送登錄請求3. 保存登錄態4. 登錄狀態管理5. 應用登錄狀態請求攔截器中添加 token自動登錄頁面路由守衛 使用 Vuex 集中管理登錄狀態登錄組件示例登錄流程最…