共用方式為


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

注意

這不是這篇文章的最新版本。 如需目前版本,請參閱本文的 .NET 8 版本

警告

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

重要

這些發行前產品的相關資訊在產品正式發行前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。

如需目前版本,請參閱本文的 .NET 8 版本

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 建構檢視
Generator 作業
area 建構區域
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