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

EF Core 封裝管理員主控台 (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 Core 命令列工具是跨平台和在命令提示字元內執行。The EF Core Command-line Tools are cross-platform and run inside a command prompt.

安裝工具Installing the tools

安裝 EF Core 封裝管理員主控台工具安裝 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 Standard[跨目標的受支援的 framework] 3之前使用的工具。If your startup project targets .NET Standard, cross-target a supported framework before using the tools.

重要

如果您使用通用 Windows或是Xamarin,將您的 EF 程式碼移至.NET Standard 類別庫和[跨目標的受支援的 framework] 3之前使用的工具。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 <字串 >-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 如果套用至資料庫,請還原移轉。Revert the migration if it has been applied to the database.

Scaffold DbContextScaffold-DbContext

建立資料庫的 DbContext 和實體類型。Scaffolds a DbContext and entity types for a database.

參數:Parameters:

Test-connection <字串 >-Connection <String> 資料庫連接字串。The connection string to the database.
-Provider <String>-Provider <String> 若要使用提供者。The provider to use. (例如 Microsoft.EntityFrameworkCore.SqlServer)(for example, Microsoft.EntityFrameworkCore.SqlServer)
-OutputDir<字串 >-OutputDir <String> 將檔案放入目錄。The directory to put files in. 路徑是相對於專案目錄。Paths are relative to the project directory.
-ContextDir<字串 >-ContextDir <String> 若要將 DbContext 檔案放在目錄。The directory to put DbContext file 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-MigrationScript-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.

提示

收件者,,和輸出參數支援 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.