EF Core 自定义 t4 模板生成代码

2024年5月7日 470点热度 0人点赞 0条评论
内容纲要

t4 模板文件

第一步,在项目中设置 t4 模板文件。

不知道 T4 模板的,可以自行查阅资料或查看 https://learn.microsoft.com/zh-cn/visualstudio/modeling/code-generation-and-t4-text-templates?view=vs-2022

可以使用工具生成两个模板文件。
安装模板工具:

dotnet new install Microsoft.EntityFrameworkCore.Templates

然后到项目下面执行命令创建模板文件:

dotnet new ef-templates

执行命令后会生成:

├─CodeTemplates
│  └─EFCore
│          DbContext.t4
│          EntityType.t4

目录结构一定要这样设计,除了这两个文件外,还可以添加其它模板文件。

请参考第三方的模板文件:https://github.com/R4ND3LL/EntityFrameworkRuler/tree/main/src/EntityFrameworkRuler.Design/Resources

执行命令生成代码

执行命令从数据库生成代码:

dotnet ef dbcontext scaffold "server=127.0.0.1;Database=aaa;Uid=root;Pwd=123456;" Pomelo.EntityFrameworkCore.MySql  --context AAAContext  --context-dir Data --output-dir Entities -f

改进 OnModelCreating

如果数据库表很多,那么上下文文件的 OnModelCreating 方法中会有大量的配置代码,非常影响阅读。我们可以使用 t4 模板将这些配置分发到具体的 EntityTypeConfiguration 文件中。

下载这个文件:https://github.com/R4ND3LL/EntityFrameworkRuler/blob/main/src/EntityFrameworkRuler.Design/Resources/EntityTypeConfiguration.t4

file

重新执行生成命令:

file

所有配置会自动分发到具体的文件中。

痴者工良

高级程序员劝退师

文章评论