如何在实体框架代码优先中执行T4模板以生成枚举

本文关键字:T4 枚举 执行 实体 框架 代码 | 更新日期: 2023-09-27 18:27:53

我有一个使用Entityframework Code First的项目。该模型包含一些枚举,我想使用T4文本模板从数据库中生成这些枚举。

但我面临一些挑战:

  • 如果数据库还不存在,则不会生成枚举
  • 如果数据库确实存在,如何运行T4模板
  • 在运行T4模板之前,如何在数据库中获取枚举

以前有人这样做并克服这些挑战吗?

如何在实体框架代码优先中执行T4模板以生成枚举

有一个NUGET包,它处理您试图解决的情况,ef enum to lookup。文档

从数据库初始值设定项或EF迁移中的Seed方法运行EnumToLookup.Apply()

此包基于模型中使用的enums创建查找表和外键约束。与默认的实体框架支持不同,您不需要为enum类创建DBSet<T>,它将enum值映射到int