代码生成模板,是使用razor语法编写的文本模板文件,以.razor为后缀名。它们用于生成确定的代码内容,或为MCP工具提供参考。
你可以通过Studio中的基础数据/模板页面来查看你的模板文件。
也可以在项目根目录中下的templates目录中查看模板文件,页面会读取该目录中的模板并展示。
首先要添加模板分类(对应目录名称),然后在该分类中添加模板文件。
你可以通过UI页面添加,也可以直接在templates目录中添加。
Tip
通过UI添加模板时,会初步验证您的内容是否符合razor语法规范。
模板上下文和变量是在编写模板时,可以使用的数据和变量,在创建生成任务时,可选择上下文类型和自定义变量列表。
| 属性 | 说明 |
|---|---|
| 命名空间 | @Namespace |
| 模型名称 | @ModelName |
| 类型描述 | @Description |
| 换行 | @NewLine |
| 实体属性 | @PropertyInfos |
| 变量列表 | @Variables |
对于数据类型为实体时,额外包含:
| 类型 | 变量 |
|---|---|
| 添加DTO | @AddPropertyInfos |
| 更新DTO | @UpdatePropertyInfos |
| 列表DTO | @ItemPropertyInfos |
| 详情DTO | @DetailPropertyInfos |
| 筛选DTO | @FilterPropertyInfos |
DTO的PropertyInfos结构与实体的PropertyInfos相同。
| 属性 | 说明 |
|---|---|
| 类型 | Type |
| 名称 | Name |
| 显示名称 | DisplayName |
| 是否数组 | IsList |
| 是否公开 | IsPublic |
| 是否导航属性 | IsNavigation |
| 是否枚举 | IsEnum |
| xml注释 | CommentXml |
| 注释摘要 | CommentSummary |
| 是否必须 | IsRequired |
| 是否可空 | IsNullable |
| 最小长度 | MinLength |
| 最大长度 | MaxLength |
| 方法 | 示例 |
|---|---|
| ToHyphen | str.ToHyphen() |
| ToSnakeLower | str.ToSnakeLower() |
| ToPascalCase | str.ToPascalCase() |
| ToCamelCase | str.ToCamelCase() |
在定义生成步骤时,路径中可使用的变量:
| 属性 | 说明 |
|---|---|
| 模型名称(CamelPascal) | ModelName |
| 模型名称(a-b-c) | ModelNameHyphen |
接下来我们来添加一个模板。
在菜单中找到基础数据/模板,点击目录右侧的 + 号,添加一个新的模板分类,命名为sample。
点击右侧模板列表的 + 号,添加一个新的模板,名称为ModelDetail,内空如下:
@foreach (var item in PropertyInfos)
{
<p>@item.Name</p>
}
我们将在后续的代码生成任务中使用该模板。
模板本身遵循razor语法规范,你可以在项目目录下创建templates/sample/ModelDetail.razor文件,用VS Code等工具进行编辑,添加后,刷新列表即可看到该模板。
Tip
编写模板不是件容易的事情,你需要了解你可以使用哪些变量和数据结构,可借助MCP工具来生成,并在此基础上进行修改.