ASP.NET Core 程式碼產生器工具 (aspnet-codegenerator)

Note

這不是這篇文章的最新版本。 關於目前版本,請參閱 本文的 .NET 10 版本。

Warning

不再支援此版本的 ASP.NET Core。 如需詳細資訊,請參閱 .NET 和 .NET Core 支持原則。 關於目前版本,請參閱 本文的 .NET 10 版本。

dotnet aspnet-codegenerator 命令會執行 ASP.NET Core Scaffolding 引擎。 若要從命令列建立專案骨架,或在使用 Visual Studio Code 時,都必須執行 dotnet aspnet-codegenerator 命令。 使用 Visual Studio 的 Scaffolding 時,不需要使用此命令,因為 Visual Studio 預設已包含 Scaffolding 引擎。

安裝及更新程式碼產生器工具

安裝 .NET SDK。

dotnet aspnet-codegenerator 是必須安裝的全域工具。 下列命令會安裝最新穩定版本的 ASP.NET Core 程式碼產生器工具:

dotnet tool install -g dotnet-aspnet-codegenerator

Note

預設情況下,安裝的 .NET 二進位架構代表目前執行的作業系統架構。 若要指定不同的架構,請檢視如何使用帶有dotnet tool install的指令。 更多資訊請參見 GitHub dotnet/aspnetcore.docs issue #29262 - 在 Apple Silicon 上新增 '-a arm64'。

如果已安裝此工具,下列命令會將此工具更新為已安裝的 .NET SDK 中可用的最新穩定版本:

dotnet tool update -g dotnet-aspnet-codegenerator

解除安裝程式碼產生器工具

可能需要解除安裝 ASP.NET Core 程式碼產生器工具才能解決問題。 例如,如果您已安裝此工具的預覽版本,請先將它解除安裝,然後再安裝發行的版本。

下列命令會解除安裝 ASP.NET Core 程式碼產生器工具,並安裝最新的穩定版本:

dotnet tool uninstall -g dotnet-aspnet-codegenerator
dotnet tool install -g dotnet-aspnet-codegenerator

Synopsis

dotnet aspnet-codegenerator [arguments] [-b|--build-base-path] [-c|--configuration] [-n|--nuget-package-dir] [--no-build] [-p|--project] [-tfm|--target-framework]
dotnet aspnet-codegenerator [-h|--help]

Description

dotnet aspnet-codegenerator 全域命令會執行 ASP.NET Core 程式碼產生器與 Scaffolding 引擎。

Arguments

generator

要執行的程式碼產生器。 下表顯示可用的產生器。

Generator Operation
area 為區域建立骨架。
blazor 建構 Blazor 建立、讀取、更新、刪除和列出頁面。
blazor-identity 產生 BlazorIdentity 檔案。
controller 建構控制器。
identity 建構 Identity。
minimalapi 根據模型和選用的資料庫內容,產生端點檔案 (具有 CRUD API 端點)。
razorpage 產生 Razor 頁面。
view 建構檢視。
Generator Operation
area 建立區域骨架。
controller 建構控制器。
identity 鷹架 Identity。
minimalapi 根據模型和選用的資料庫內容,產生端點檔案 (具有 CRUD API 端點)。
razorpage 產生 Razor 頁面。
view 建構檢視。

選項

-b|--build-base-path

建置的基礎路徑。

-c|--configuration {Debug|Release}

定義組建組態。 預設值是 Debug。

-h|--help

輸出此指令的簡短說明。

-n|--nuget-package-dir

指定 NuGet 套件目錄。

--no-build

不會在執行前建置專案。 傳遞 --no-build 也會隱含地設定 --no-restore 旗標。

-p|--project <PATH>

指定要執行的專案檔路徑 (資料夾名稱或完整路徑)。 如果未指定,則此工具會預設為目前的目錄。

-tfm|--target-framework

要使用的目標架構。

發電機選項

以下各節詳細說明支援之產生器的可用選項:

區域選項

使用方式:dotnet aspnet-codegenerator area {AREA NAME}

{AREA NAME} 預留位置代表將要產生的區域名稱。

上述命令會產生下列資料夾:

  • Areas
    • {AREA NAME}
      • Controllers
      • Data
      • Models
      • Views

使用 -h|--help 選項來取得說明:

dotnet aspnet-codegenerator area -h

Blazor 選項

透過指定要使用的範本名稱,可以為 Razor 應用程式個別建構 Blazor 元件。 支援的範本為:

  • Empty
  • Create
  • Edit
  • Delete
  • Details
  • List
  • CRUD:CRUD 是 Create、Read、Update 和 Delete 的首字母縮略字。 CRUD 範本會為應用程式產生 Create、Edit、Delete、Details 和 Index (List) 元件。

下表顯示 blazor 產生器的選項。

Option Description
-dbProvider|--databaseProvider 要使用的資料庫提供者。 選項包括 sqlserver (預設值)、sqlite、cosmos 或 postgres。
-dc|--dataContext 要使用的資料庫內容類別。
-m|--model 要使用的模型類別。
-ns|--namespaceName 指定要用於所產生「端點」檔案的命名空間名稱。
--relativeFolderPath|-outDir 輸出資料夾的相對路徑。 若未指定,則會在專案資料夾中產生檔案。

下列範例:

  • 使用 Edit 範本,在應用程式的 Edit 資料夾中產生 Edit.razor 元件 (Components/Pages/MoviePages)。 如果 MoviePages 資料夾不存在,則此工具會自動建立該資料夾。
  • 使用 SQLite 資料庫提供者。
  • 針對資料庫內容使用 BlazorWebAppMovies.Data.BlazorWebAppMoviesContext。
  • 使用 Movie 模型。
dotnet aspnet-codegenerator blazor Edit -dbProvider sqlite -dc BlazorWebAppMovies.Data.BlazorWebAppMoviesContext -m Movie -outDir Components/Pages

使用 -h|--help 選項來取得說明:

dotnet aspnet-codegenerator blazor -h

如需使用 blazor 產生器的範例,請參閱 建 Blazor 置電影資料庫應用程式 (概觀) 。

如需詳細資訊,請參閱 ASP.NET Core Blazor 'QuickGrid' 元件。

Blazor Identity 選項

使用 Identity 產生器將 RazorBlazor 元件建構到 blazor-identity 應用程式中。

下表顯示 blazor-identity 範本的選項。

Option Description
-dbProvider|--databaseProvider 要使用的資料庫提供者。 選項包括 sqlserver (預設值) 和 sqlite。
-dc|--dataContext 要使用的資料庫內容類別。
-f|--force 使用此選項來覆寫現有的檔案。
-fi|--files 要建構的以分號區隔的檔案清單。 使用 -lf|--listFiles 選項來查看可用的選項。
-lf|--listFiles 列出可以使用 -fi|--files 選項建構的檔案。
-rn|--rootNamespace 要用來產生 Identity 程式碼的根命名空間。
-u|--userClass 要產生之使用者類別的名稱。

使用 -h|--help 選項以取得說明:

dotnet aspnet-codegenerator blazor-identity -h

控制器選項

下表顯示一般選項。

Option Description
-b|--bootstrapVersion 指定 Bootstrap 版本並為 Bootstrap 資源建立一個 wwwroot 資料夾 (如果該資料夾不存在的話)。
-dbProvider|--databaseProvider 要使用的資料庫提供者。 選項包括 sqlserver (預設值)、sqlite、cosmos、postgres。
-dc|--dataContext 要使用的資料庫內容類別,或要產生之類別的名稱。
-f|--force 覆寫現有檔案。
-l|--layout 要使用的自訂版面配置頁面。
-m|--model 要使用的模型類別。
-outDir|--relativeFolderPath 輸出資料夾的相對路徑。 若未指定,則會在專案資料夾中產生檔案。
-scripts|--referenceScriptLibraries 所產生檢視中的參考指令碼程式庫。 將 _ValidationScriptsPartial 新增至 Edit 和 Create 頁面。
-sqlite|--useSqlite 用來指定資料庫內容脈絡是否應使用 SQLite 而不是 SQL Server 的旗標。
-udl|--useDefaultLayout 對檢視使用預設版面配置。

下表顯示 controller 的唯一選項。

Option Description
-actions|--readWriteActions 在不使用模型的情況下使用讀取/寫入動作產生控制器。
-api|--restWithNoViews 使用 REST 樣式 API 產生控制器。 假設使用 noViews 且會忽略所有檢視相關選項。
-async|--useAsyncActions 產生非同步控制器動作。
-name|--controllerName 控制器的名稱。
-namespace|--controllerNamespace 指定要用於所產生控制器的命名空間名稱。
-nv|--noViews 不產生任何檢視。

使用 -h|--help 選項以取得說明:

dotnet aspnet-codegenerator controller -h

如需使用 controller 產生器的範例,請參閱「第 4 部分:將模型新增至 ASP.NET Core MVC 應用程式」。

Identity 選項

如需詳細資訊,請參閱 ASP.NET Core 專案中的 Scaffold Identity。

最小 API 選項

使用 minimalapi 範本來建構最小 API 後端。

下表顯示 minimalapi 的選項。

Option Description
-dbProvider|--databaseProvider 要使用的資料庫提供者。 選項包括 sqlserver (預設值)、sqlite、cosmos 或 postgres。
-dc|--dataContext 要使用的資料庫內容類別。
-e|--endpoints 要使用的端點類別 (不是檔名)。
-m|--model 要使用的模型類別。
-namespace|--endpointsNamespace 指定要用於所產生端點檔案的命名空間名稱。
-o|--open 使用此選項來啟用 OpenAPI。
-outDir|--relativeFolderPath 相對的輸出資料夾路徑。 若未指定,則會在專案資料夾中產生檔案。
-sqlite|--useSqlite 用來指定資料庫上下文是否要使用 SQLite 而非 SQL Server 的旗標。

下列範例:

  • 產生一個名為 SpeakersEndpoints 的端點類別,其中包含使用 ApplicationDbContext 資料庫內容類別和 BackEnd.Models.Speaker 模型對應到資料庫作業的 API 端點。
  • 將 app.MapSpeakerEndpoints(); 新增至 Program 檔案 (Program.cs) 以註冊端點類別。
dotnet aspnet-codegenerator minimalapi -dc ApplicationDbContext -e SpeakerEndpoints -m BackEnd.Models.Speaker -o

使用 -h|--help 選項來取得說明:

dotnet aspnet-codegenerator minimalapi -h

Razor 頁面選項

Razor 您可以透過指定新頁面的名稱和要使用的範本,來個別為頁面建立骨架。 支援的範本為:

  • Empty
  • Create
  • Edit
  • Delete
  • Details
  • List

通常,不會指定範本和產生的檔名,這會建立以下範本:

  • Create
  • Edit
  • Delete
  • Details
  • List

下表顯示一般選項。

Option Description
-b|--bootstrapVersion 指定 Bootstrap 版本並為 Bootstrap 資源建立一個 wwwroot 資料夾 (如果該資料夾不存在的話)。
-dbProvider|--databaseProvider 要使用的資料庫提供者。 選項包括 sqlserver (預設值)、sqlite、cosmos、postgres。
-dc|--dataContext 要使用的資料庫內容類別,或要產生之類別的名稱。
-f|--force 覆寫現有檔案。
-l|--layout 要使用的自訂版面配置頁面。
-m|--model 要使用的模型類別。
-outDir|--relativeFolderPath 相對輸出資料夾路徑。 若未指定,則會在專案資料夾中產生檔案。
-scripts|--referenceScriptLibraries 所產生檢視中的參考指令碼程式庫。 將 _ValidationScriptsPartial 新增至 Edit 和 Create 頁面。
-sqlite|--useSqlite 用來指定資料庫內容脈絡是否應使用 SQLite 而非 SQL Server 的旗標。
-udl|--useDefaultLayout 對檢視使用預設版面配置。

下表顯示 razorpage 的唯一選項。

Option Description
-namespace|--namespaceName 要用於產生之 PageModel 類別的命名空間名稱。
-npm|--noPageModel 請勿為 PageModel 範本產生 Empty 類別。
-partial|--partialView 產生局部檢視。 如果指定了此選項,則會忽略版面配置選項 -l 和 -udl。

下列範例會使用 Edit 範本,在 CustomEditPage.cshtml 資料夾中產生 CustomEditPage.cshtml.cs 和 Pages/Movies:

dotnet aspnet-codegenerator razorpage CustomEditPage Edit -dc RazorPagesMovieContext -m Movie -outDir Pages/Movies

使用 -h|--help 選項來取得說明:

dotnet aspnet-codegenerator razorpage -h

如需使用 razorpage 產生器的範例,請參閱「第 2 部分:新增模型」。

檢視選項

檢視可以透過指定檢視名稱和範本來個別建構。 支援的範本為:

  • Empty
  • Create
  • Edit
  • Delete
  • Details
  • List

下表顯示一般選項。

Option Description
-b|--bootstrapVersion 指定 Bootstrap 版本並為 Bootstrap 資源建立一個 wwwroot 資料夾 (如果該資料夾不存在的話)。
-dbProvider|--databaseProvider 要使用的資料庫提供者。 選項包括 sqlserver (預設值)、sqlite、cosmos、postgres。
-dc|--dataContext 要使用的資料庫內容類別,或要產生之類別的名稱。
-f|--force 覆寫現有檔案。
-l|--layout 要使用的自訂版面頁面。
-m|--model 要使用的模型類別。
-outDir|--relativeFolderPath 相對的輸出資料夾路徑。 若未指定,則會在專案資料夾中產生檔案。
-scripts|--referenceScriptLibraries 所產生檢視中的參考指令碼程式庫。 將 _ValidationScriptsPartial 新增至 Edit 和 Create 頁面。
-sqlite|--useSqlite 用來指定資料庫內容是否應使用 SQLite 而不是 SQL Server 的旗標。
-udl|--useDefaultLayout 針對檢視使用預設的配置。

下表顯示 view 的唯一選項。

Option Description
-namespace|--controllerNamespace 指定要用於所產生控制器的命名空間名稱。
-partial|--partialView 產生部分檢視。 如果指定了此選項,則會忽略其他版面配置選項 (-l 和 -udl)。

下列範例會使用 Edit 範本,在 CustomEditView.cshtml 資料夾中產生 Views/Movies:

dotnet aspnet-codegenerator view CustomEditView Edit -dc MovieContext -m Movie -outDir Views/Movies

使用 -h|--help 選項以取得說明:

dotnet aspnet-codegenerator view -h