ASP.NET Core 代码生成器工具 (aspnet-codegenerator)

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
  • 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 指定启动版本,如果 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 项目中的基架 Identity

Minimal API 选项

使用 minimalapi 模板搭建 Minimal API 后端。

minimalapi 的选项如下表所示。

选项 说明
-dbProvider|--databaseProvider 要使用的数据库提供程序。 选项包括 sqlserver(默认值)、sqlitecosmospostgres
-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(默认值)、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 指定启动版本,如果 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