【问题标题】:How to execute a T4 template to generate enums in Entity Framework Code First如何执行 T4 模板以在 Entity Framework Code First 中生成枚举
【发布时间】:2017-05-05 00:57:14
【问题描述】:

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

但我面临一些挑战:

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

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

【问题讨论】:

  • 您使用的是哪个版本的实体框架? EF 5 及更高版本已内置对枚举数据类型的支持,无需 T4。
  • 我有最新的稳定版本,6.1.2 IIRC。不过你说的是真的,但我也需要它们作为数据库中的查找表。

标签: c# entity-framework enums t4


【解决方案1】:

有一个 NUGET 包可以处理您要解决的问题,ef-enum-to-lookupDocumentation.

从数据库初始化程序或 EF 迁移中的 Seed 方法运行 EnumToLookup.Apply()

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

【讨论】:

  • 该死的,看起来很棒!它是否也处理枚举集合?我查看了示例项目,在实体类中根本没有看到任何枚举集合。
  • 根据我的经验,它直接或通过集合处理实体对象引用的任何枚举。但是,您肯定要验证生成的架构。
  • 为@Claies 的推荐干杯 :-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-09
  • 1970-01-01
  • 1970-01-01
  • 2016-04-04
  • 1970-01-01
相关资源
最近更新 更多