EF Migration指令整理 - HackMD
文章推薦指數: 80 %
tags: `Web` `DotNet Core` `Entity Framework` # EF Migration指令整理參考網址:[https://www.cnblogs.
Published
LinkedwithGitHub
Like
Bookmark
Subscribe
######tags:`Web``DotNetCore``EntityFramework`
#EFMigration指令整理
參考網址:[https://www.cnblogs.com/wangjieguang/p/EFCore-Migration.html](http://example.com)
1)OnPowerShellInteractiveWindow
2)全部指令請參考help輸入:dotnetef
3)常用指令如下:
先跳到目錄下:cdsrc\HxCrmApi.Coreorcd'D:\00TFS\PJ2018017\API\hx-crm-api\src\HxCrmApi.Core'
打入指令:dotnetefmigrationsaddHxCrmApiDB_xxx(如果太多要移除,請輸入dotnetefmigrationsremove)
再打指令:dotnetefdatabaseupdate(這個全部都會執行,如果要指定請在後面打HxCrmApiDB_xxx)
4)要執行開發環境的資料庫請執行:$Env:ASPNETCORE_ENVIRONMENT="Development"
5)要執行正式環境的資料庫請執行:$Env:ASPNETCORE_ENVIRONMENT="Production"
6)要輸出SQL請執行:dotnetefmigrationsscript>D:\HxCrmApiDB_xxx.sql(這個全部都會執行,如果要指定請在後面打HxCrmApiDB_xxx)
7)要輸出SQL請執行:dotnetefmigrationsscriptHxCrmApiDB_xxx>D:\HxCrmApiDB_xxx.sql(這個全部都會執行,如果要指定請在後面打HxCrmApiDB_xxx)
```powershell
Script-Migration[-From]
針對其他開發環境,請選擇.NETCoreCLI工具。
>建立移轉
在您定義起始模型之後,即可開始建立資料庫。
若要新增初始移轉,請執行下列命令。
```powershell
Add-MigrationInitialCreate
dotnetefmigrationsaddInitialCreate
```
>自訂移轉程式碼
對您的EFCore模型進行變更後,資料庫結構描述會失去同步。
若要將其更新為最新狀態,請新增另一個移轉。
您能夠以類似版本控制系統中認可訊息的方式來使用移轉名稱。
例如,如果變更是要檢閱的新實體類別,您可以選擇像是AddProductReviews的名稱。
```powershell
Add-MigrationAddProductReviews
dotnetefmigrationsaddAddProductReviews
```
>移除移轉
在您新增移轉時,有時候會發現您必須在套用EFCore模型之前對其進行其他變更。
若要移除上一個移轉,請使用此命令。
```powershell
Remove-Migration
dotnetefmigrationsremove
```
>還原移轉
若您已經套用移轉(或多個移轉)到資料庫但需要還原,您可以使用相同命令來套用移轉,但必須指定所要復原到的移轉名稱。
```powershell
Update-DatabaseLastGoodMigration
dotnetefdatabaseupdateLastGoodMigration
```
>更新資料庫
接下來,將移轉套用到資料庫以建立結構描述。
```powershell
Update-Database
dotnetefdatabaseupdate
```
>產生SQL指令碼
對移轉進行偵錯或將其部署到生產資料庫時,產生SQL指令碼很實用。
您可以進一步檢閱程式碼的精確度,並對其進行微調以符合生產資料庫的需求。
指令碼也可以搭配部署技術使用。
基本命令如下。
```powershell
Script-Migration
dotnetefmigrationsscript
```
>下列範例會使用遷移名稱來建立InitialCreate遷移的腳本。
```powershell
Script-Migration-ToInitialCreate
```
>下列範例會使用遷移識別碼,針對InitialCreate遷移之後的所有遷移建立腳本。
```powershell
Script-Migration-From20180904195021_InitialCreate
```
>異動資料庫&產生異動相關SqlScript-verbose會顯示sqlscript
```powershell
update-database-verbose
```
>產生不同migration版本間,所需要的異動SQLScript
>產生最近一次差異的SQL(預設)
```powershell
Update-Database-Script
```
>產生重初始化(0)到第(2)版所有SQL語法(e.gCreateAllTable)
```powershell
Update-Database-Script-SourceMigration:$InitialDatabase-TargetMigration:secondMigration
```
>產生差異Sql(1)到(2)版的差異SQL(e.gAlterTable)
```powershell
Update-Database-Script-SourceMigration:firstinit-TargetMigration:secondMigration
```
>產生差異Sql(2)到(3)版的差異SQL(e.gdropcolumn)
```powershell
Update-Database-Script-SourceMigration:firstinit-TargetMigration:thirdMigration
```
>更多update-database相關指令
```powershell
get-helpupdate-database
```
-------------------------------
>常用語法
```powershell
Add-Migration
Update-Database
```
>輸出異動的SQL不包含From,產生From之後,並輸出到指定的資料夾
```powershell
Script-Migration-FromXXX-o"D:\aaaaaa\ticket_0629-1.sql"
```
×
Signin
Email
Password
Forgotpassword
or
Byclickingbelow,youagreetoourtermsofservice.
SigninviaFacebook
SigninviaTwitter
SigninviaGitHub
SigninviaDropbox
NewtoHackMD?Signup
延伸文章資訊
- 1dotnet/efcore: EF Core is a modern object-database mapper ...
EF Core is a modern object-database mapper for .NET. It supports LINQ queries, change tracking, u...
- 2dotnet ef 找不到指定的命令 - 黑暗執行緒
從3.0 起,EF Core 命令列工具(dotnet ef) 不再包含於.NET Core SDK 裡,必須額外安裝。安裝指令為 dotnet tool install --global do...
- 3EF Core Migrations using CLI - Entity Framework Tutorial
Learn about all EF Core commands for dotnet CLI (Command Line Interface) such as dotnet ef databa...
- 4dotnet-ef 6.0.9 - NuGet
- 5EF Core tools reference (.NET CLI) - Microsoft Learn
dotnet ef dbcontext scaffold. Generates code for a DbContext and entity types for a database. In ...