ASP.NET Core 代码生成器工具 (
Note
此版本不是本文的最新版本。 有关当前版本,请参阅本文的 .NET 9 版本。
Warning
此版本的 ASP.NET Core 不再受支持。 有关详细信息,请参阅 .NET 和 .NET Core 支持策略。 有关当前版本,请参阅本文的 .NET 9 版本。
Important
此信息与预发布产品相关,相应产品在商业发布之前可能会进行重大修改。 Microsoft 对此处提供的信息不提供任何明示或暗示的保证。
有关当前版本,请参阅本文的 .NET 9 版本。
              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
Note
默认情况下,要安装的 .NET 二进制文件的体系结构表示当前运行的 OS 体系结构。 若要指定不同的 OS 体系结构,请参阅 dotnet tool install, --arch option。 有关详细信息,请参阅 GitHub 问题 dotnet/AspNetCore.Docs #29262。
如果已安装该工具,以下命令会将该工具更新为已安装的 .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 代码生成器和基架引擎。
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
要使用的目标框架。
Generator options
以下各节详细说明了受支持的生成器的可用选项:
Area options
使用情况: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
Controller options
常规选项如下表所示。
| Option | Description | 
|---|---|
| -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 独有的选项。
| 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 项目中的基架 Identity。
Minimal API 选项
使用 minimalapi 模板搭建 Minimal 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 Pages 的基架。 支持如下模板:
- Empty
- Create
- Edit
- Delete
- Details
- List
在不指定模板和生成的文件名的情况下,系统通常会创建以下模板:
- Create
- Edit
- Delete
- Details
- List
常规选项如下表所示。
| Option | Description | 
|---|---|
| -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 独有的选项。
| 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 部分,添加模型。
View options
可以通过指定视图的名称和要使用的模板来单独搭建视图。 支持如下模板:
- Empty
- Create
- Edit
- Delete
- Details
- List
常规选项如下表所示。
| Option | Description | 
|---|---|
| -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 独有的选项。
| 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