ASP.NET Core 代码生成器工具 (aspnet-codegenerator
)
注意
此版本不是本文的最新版本。 对于当前版本,请参阅此文的 .NET 8 版本。
警告
此版本的 ASP.NET Core 不再受支持。 有关详细信息,请参阅 .NET 和 .NET Core 支持策略。 对于当前版本,请参阅此文的 .NET 8 版本。
dotnet aspnet-codegenerator
命令用于运行 ASP.NET Core 基架引擎。 通过命令行或使用 Visual Studio Code 启动时,需要运行 dotnet aspnet-codegenerator
命令来搭建基架。 使用 Visual Studio 时,无需使用此命令来使用基架,因为 Visual Studio 已默认内置基架引擎。
安装和更新代码生成器工具
安装 .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 代码生成器和基架引擎。
自变量
generator
要运行的代码生成器。 下表显示了可用的生成器。
Generator | 操作 |
---|---|
area |
搭建区域的基架。 |
blazor |
搭建 Blazor 的基架,自动生成页面来执行创建、读取、更新、删除和列出操作。 |
blazor-identity |
生成 BlazorIdentity 文件。 |
controller |
搭建控制器的基架。 |
identity |
搭建 Identity 的基架。 |
minimalapi |
在给定模型和可选数据库上下文的情况下,生成终结点文件(使用 CRUD API 终结点)。 |
razorpage |
搭建 Razor 页面的基架。 |
view |
搭建视图的基架。 |
Generator | 操作 |
---|---|
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 选项
通过指定要使用的模板名称,可以为 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 |
指定启动版本,如果 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 项目中的基架 Identity。
Minimal API 选项
使用 minimalapi
模板搭建 Minimal 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 的标记。 |
下面的示例:
- 使用
ApplicationDbContext
数据库上下文类和BackEnd.Models.Speaker
模型生成一个名为SpeakersEndpoints
的终结点类,其中包含映射到数据库操作的 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 |
指定启动版本,如果 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 |
指定启动版本,如果 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