共用方式為


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

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

注意

根據預設,要安裝的 .NET 二進位檔架構代表目前執行的 OS 架構。 若要指定不同的 OS 架構,請參閱 dotnet tool install, --arch option。 如需詳細資訊,請參閱 GitHub 問題 dotnet/AspNetCore.Docs #29262

如果已安裝此工具,下列命令會將此工具更新為已安裝的 .NET Core 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

概要

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]

描述

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

引數

generator

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

Generator 作業
area 建構區域
blazor 建構 Blazor 建立、讀取、更新、刪除和列出頁面
blazor-identity 產生 BlazorIdentity 檔案。
controller 建構控制器
identity 建構 Identity
minimalapi 根據模型和選用的資料庫內容,產生端點檔案 (具有 CRUD API 端點)。
razorpage 建構 Razor Pages
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 選項

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

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

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

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

下列範例將:

  • 使用 Edit 範本,在應用程式的 Components/Pages/MoviePages 資料夾中產生 Edit 元件 (Edit.razor)。 如果 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

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

BlazorIdentity 選項

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

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

選項 描述
-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

控制器選項

下表顯示一般選項。

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

下表顯示 controller 的唯一選項。

選項 描述
-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 的選項。

選項 描述
-dbProvider|--databaseProvider 要使用的資料庫提供者。 選項包括 sqlserver (預設值)、sqlitecosmospostgres
-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 Pages。 支援的範本為:

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

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

  • Create
  • Edit
  • Delete
  • Details
  • List

下表顯示一般選項。

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

下表顯示 razorpage 的唯一選項。

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

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

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

下表顯示一般選項。

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

下表顯示 view 的唯一選項。

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

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

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

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

dotnet aspnet-codegenerator view -h