【发布时间】:2013-05-24 00:22:39
【问题描述】:
我有这两个实体:
颜色实体映射到表示颜色的常量值表。
代码=1,名称=“红色”
代码=2,名称="蓝色"
等等……
在 Car 实体中,Color 属性是 int 类型,并且对 Color 实体中的 Code 属性具有外键约束。我想将 Car 中的 Color 属性转换为 Enum,但 Enum 应该从 Color 表中获取它的值。
可以在每个构建操作或设计器中的“更新模型”操作中更新枚举。 能不能实现这个功能?
【问题讨论】:
-
您可能会编写一个 T4 模板(*.tt 文件)来连接到数据库并输出生成的枚举,然后使用扩展在每次构建之前执行您的模板。诸如 Chirpy 或 Web Workbench afaicr 之类的工具可以做到这一点,但也可能存在其他选项(在 NuGet 中搜索选项)。但我不确定这样做是否有意义,因为您无法在代码中的任何位置安全地使用枚举(假设值可能会更改或消失)。
-
我们已经实现了一个从数据库表生成枚举的 T4 模板。效果很好。
标签: c# entity-framework enums entity-framework-5