ASP.NET Core 程式碼產生器工具 (aspnet-codegenerator
)
注意
這不是這篇文章的最新版本。 如需目前版本,請參閱本文的 .NET 8 版本。
警告
不再支援此版本的 ASP.NET Core。 如需詳細資訊,請參閱 .NET 和 .NET Core 支援原則。 如需目前版本,請參閱本文的 .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
CRUD
:CRUD 是 Create、Read、Update 和 Delete 的首字母縮略字。CRUD
範本會為應用程式產生Create
、Edit
、Delete
、Details
和Index
(List
) 元件。
下表顯示 blazor
產生器的選項。
選項 | 描述 |
---|---|
-dbProvider|--databaseProvider |
要使用的資料庫提供者。 選項包括 sqlserver (預設值)、sqlite 、cosmos 或 postgres 。 |
-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 (預設值)、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
的唯一選項。
選項 | 描述 |
---|---|
-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 (預設值)、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 Pages。 支援的範本為:
Empty
Create
Edit
Delete
Details
List
通常,不會指定範本和產生的檔名,這會建立以下範本:
Create
Edit
Delete
Details
List
下表顯示一般選項。
選項 | 描述 |
---|---|
-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
的唯一選項。
選項 | 描述 |
---|---|
-namespace|--namespaceName |
要用於產生之 PageModel 類別的命名空間名稱。 |
-npm|--noPageModel |
請勿為 Empty 範本產生 PageModel 類別。 |
-partial|--partialView |
產生部分檢視。 如果指定了此選項,則會忽略版面配置選項 -l 和 -udl 。 |
下列範例會使用 Edit
範本,在 Pages/Movies
資料夾中產生 CustomEditPage.cshtml
和 CustomEditPage.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 (預設值)、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
的唯一選項。
選項 | 描述 |
---|---|
-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