使用变量
变量,是一些全局的信息,比如项目名称、作者、版权、命名空间等等,也可以是一些选择控制项,比如语言、命名规则等等,每套模板都可以定义不同的变量,后面有一节会专门介绍变量的扩展。
一、基础变量
TabeNamingMode
表名到类名的转换命名规则。设调了 Pascal 和 Original 两种。Pascal 表示使用帕斯卡命名,而 Original 会延续表名的命名。两种命名对比如下:
表名 | Pascal 转换 | Original 转换 |
---|---|---|
user | User | user |
user_role | UserRole | user_role |
userrole | Userrole | userrole |
ColumnNamingMode
字段名到属性名的转换命名规则与 TabeNamingMode 是一样的。两种命名对比如下:
字段名 | Pascal 转换 | Original 转换 |
---|---|---|
Id | Id | Id |
user_id | UserId | user_id |
roleId | RoleId | roleId |
TableRegex
和ColumnRegex
表名到类名转换时替换规则,字段名到属性名转换时替换规则,一般应用于有前缀的表名,这实际上是一个正则替换。转换示例如下:
表名 | Regex 规则 | 类名(Pascal 转换) |
---|---|---|
sys_user | sys_ | User |
base_student | base_ | Student |
TB_company | TB_|TS_ | Company |
二、变量的操作
大部分变量是在模板中使用的,只有少部分,比如 TabeNamingMode
和 ColumnNamingMode
,在【变量】窗口里调整后是立即生效的,你可在【属性】窗口查看转换过后的表的 ClassName
或字段的 PropertyName
。
调整变量后是不会持久化的,重新打开 CodeBuilder 后将恢复到之前的状态。你可以单击工具栏上的【保存】按钮进行持久化,这样重启后将加载保存后的状态。
如果同一套模板使用到不同的项目中,你也可以单击工具栏上的【另存为文件】按钮保存将当前的配置信息保存到其他文件中,下次根据需要【打开】不同的项目配置。
三、其他模板中定义的变量
ABP + EfCore
Module
模板名,一般是指子服务(项目)名。
SubNameSpace
子文件夹名称,一个服务(项目)下还分多个模块,因此可以使用此变量来划分。而且可以使用.来无限扩展,如 Customer.OrderHistory,将生成 Customer\OrderHistory 子目录。
EntityExcludeProperties
一般都定义的实体基类,因此会定义一些基础的属性,可以在生成时排除。使用竖线分隔,如 Id|CreateUserId|ModifyUserId|RowVersion。
DTOExcludeProperties
DTO 类需要排除的基础属性,与 EntityExcludeProperties 相类似。
Fireasy + Mvc
Fluent
是否使用 Fluent 方式来注册实体关系映射。传统的映射方式是通过在类和属性上添加 Attribute 来标记,但也可以使用类似 EfCore 的 ModelCreating 方式来添加映射。