EF 核心封裝管理員主控台工具EF Core Package Manager Console Tools

EF 核心封裝管理員主控台 (PMC) 工具,請執行 Visual Studio 內使用 NuGet 的Package Manager ConsoleThe EF Core Package Manager Console (PMC) Tools run inside of Visual Studio using NuGet's Package Manager Console. 這些工具會使用.NET Framework 和.NET Core 專案。These tools work with both .NET Framework and .NET Core projects.

提示

不使用 Visual Studio 嗎?Not using Visual Studio? EF 核心命令列工具是跨平台和在命令提示字元內執行。The EF Core Command-line Tools are cross-platform and run inside a command prompt.

安裝工具Installing the tools

安裝 EF 核心封裝管理員主控台工具安裝 Microsoft.EntityFrameworkCore.Tools NuGet 封裝。Install the EF Core Package Manager Console Tools by installing the Microsoft.EntityFrameworkCore.Tools NuGet package. 您可以執行內的下列命令來安裝Package Manager ConsoleYou can install it by executing the following command inside Package Manager Console.

Install-Package Microsoft.EntityFrameworkCore.Tools

如果一切正常運作,您應該能夠執行這個命令:If everything worked correctly, you should be able to run this command:

Get-Help about_EntityFrameworkCore

提示

如果您的啟始專案的目標.NET 標準跨目標受支援的 framework之前使用的工具。If your startup project targets .NET Standard, cross-target a supported framework before using the tools.

重要

如果您使用通用 WindowsXamarin,將您的 EF 程式碼移至.NET 標準的類別庫和跨目標受支援的 framework之前使用的工具。If you're using Universal Windows or Xamarin, move your EF code to a .NET Standard class library and cross-target a supported framework before using the tools. 指定的類別庫做為您的啟始專案。Specify the class library as your startup project.

使用的工具Using the tools

當您叫用命令時,有兩個專案相關:Whenever you invoke a command, there are two projects involved:

目標專案是其中的任何檔案會加入 (或在某些情況下移除)。The target project is where any files are added (or in some cases removed). 目標專案預設值為預設專案Package Manager Console 中選取,但您也可以指定使用-專案參數。The target project defaults to the Default project selected in Package Manager Console, but can also be specified using the -Project parameter.

啟始專案是模擬的工具執行您的專案程式碼時。The startup project is the one emulated by the tools when executing your project's code. 預設為其中一個設定為啟始專案方案總管 中。It defaults to one Set as StartUp Project in Solution Explorer. 它也可以指定使用-啟始專案參數。It can also be specified using the -StartupProject parameter.

一般參數:Common parameters:

內容<字串 >-Context <String> 若要使用 DbContext。The DbContext to use.
-專案<字串 >-Project <String> 要使用的專案。The project to use.
-啟始專案<字串 >-StartupProject <String> 若要使用啟始專案。The startup project to use.
-Verbose-Verbose 顯示詳細資訊輸出。Show verbose output.

若要顯示命令的說明資訊,請使用 PowerShell 的Get-Help命令。To show help information about a command, use PowerShell's Get-Help command.

提示

內容、 專案和啟始專案參數支援 tab 鍵擴充。The Context, Project, and StartupProject parameters support tab-expansion.

提示

設定env:ASPNETCORE_ENVIRONMENT之前指定 ASP.NET Core 環境執行。Set env:ASPNETCORE_ENVIRONMENT before running to specify the ASP.NET Core environment.

命令Commands

新增移轉Add-Migration

加入新的移轉。Adds a new migration.

參數:Parameters:

-名稱<字串 >-Name <String> 移轉程序的名稱。The name of the migration.
-OutputDir<字串 >-OutputDir <String> 目錄 (以及子命名空間) 使用。The directory (and sub-namespace) to use. 路徑是相對於專案目錄。Paths are relative to the project directory. 預設為 「 移轉 」。Defaults to "Migrations".

注意

中的參數粗體是必要的以及在斜體是位置。Parameters in bold are required, and ones in italics are positional.

卸除資料庫Drop-Database

卸除資料庫。Drops the database.

參數:Parameters:

-WhatIf-WhatIf 顯示哪一個資料庫會卸除,但不卸除它。Show which database would be dropped, but don't drop it.

Get DbContextGet-DbContext

取得 DbContext 類型的相關資訊。Gets information about a DbContext type.

移除移轉Remove-Migration

移除最後的移轉。Removes the last migration.

參數:Parameters:

-Force-Force 不會檢查以查看是否移轉套用至資料庫。Don't check to see if the migration has been applied to the database.

Scaffold DbContextScaffold-DbContext

Scaffold DbContext 類型及實體類型的資料庫。Scaffolds a DbContext and entity types for a database.

參數:Parameters:

連接<字串 >-Connection <String> 資料庫的連接字串。The connection string to the database.
提供者<字串 >-Provider <String> 若要使用提供者。The provider to use. (例如,(E.g. Microsoft.EntityFrameworkCore.SqlServer)Microsoft.EntityFrameworkCore.SqlServer)
-OutputDir<字串 >-OutputDir <String> 將檔案放入目錄。The directory to put files in. 路徑是相對於專案目錄。Paths are relative to the project directory.
內容<字串 >-Context <String> 若要產生 DbContext 名稱。The name of the DbContext to generate.
-結構描述<String [] >-Schemas <String[]> 要產生實體類型的資料表結構描述。The schemas of tables to generate entity types for.
-資料表<String [] >-Tables <String[]> 要產生實體類型的資料表。The tables to generate entity types for.
-DataAnnotations-DataAnnotations 使用屬性,將模型設定 (如果可能的話)。Use attributes to configure the model (where possible). 如果省略,則會使用 fluent 應用程式開發的 API。If omitted, only the fluent API is used.
-UseDatabaseNames-UseDatabaseNames 使用直接從資料庫資料表和資料行名稱。Use table and column names directly from the database.
-Force-Force 覆寫現有檔案。Overwrite existing files.

指令碼移轉Script-Migration

從移轉中產生 SQL 指令碼。Generates a SQL script from migrations.

參數:Parameters:

-從<字串 >-From <String> 開始移轉。The starting migration. 預設值為 0 (初始資料庫)。Defaults to 0 (the initial database).
-到<字串 >-To <String> 結束的移轉。The ending migration. 預設的最後一個移轉。Defaults to the last migration.
為等冪-Idempotent 產生的指令碼,可用在任何移轉的資料庫。Generate a script that can be used on a database at any migration.
-輸出<字串 >-Output <String> 若要將結果寫入檔案。The file to write the result to.

提示

To、 From、 和輸出參數支援 tab 鍵擴充。The To, From, and Output parameters support tab-expansion.

更新資料庫Update-Database

移轉<字串 >-Migration <String> 在目標移轉。The target migration. 如果為 '0',將會還原所有移轉。If '0', all migrations will be reverted. 預設的最後一個移轉。Defaults to the last migration.

提示

移轉參數支援 tab 鍵擴充。The Migration parameter supports tab-expansion.