【发布时间】:2018-04-14 21:27:52
【问题描述】:
我想创建一个名为“type”的枚举类型列,但是当我对 Code First 生成的数据库进行反向工程时,它会将其分配为“int”。
这是我的枚举类:
[Flags]
public enum TypeNames
{
Een = 0,
Twee = 1,
Drie = 2
}
这是我的 Grounds 类,用于使用“TypeNames”枚举创建表。 Properties 类是另一个表(Grounds - Properties 具有 TPT 继承)。
[Table("gronden")]
public partial class Grounds : Properties
{
[Column("opp")]
public double? Surface { get; set; }
[EnumDataType(typeof(TypeNames)), Column("type")]
public TypeNames Types { get; set; }
}
关于我在这里缺少什么以将枚举类型放入我的数据库的任何想法?
【问题讨论】:
-
enum在 SQL 中会是什么样子? -
@HenkHolterman
INT(11)暗示 MySQL,在这种情况下它看起来像 like this。 -
@HenkHolterman 我想返回字符串文字值而不是我的数据库中的索引值。但我不知道如何在 Code First 中管理它。
-
EF Core at this open issue on GitHub 有一个起点,它允许将列创建为
ENUM类型,但由于它们作为字符串返回给客户端,因此需要更多 EF Core 配置来转换在运行时枚举常量和字符串之间。我不认为 EF(非核心)提供了足够的扩展点来允许移植该解决方案,我觉得这根本不可能。
标签: entity-framework enums ef-code-first