0

我使用一个旧数据库,其中所有内容都保存为字符串。我有一个客户表,这个表有一个状态列。我也先使用实体​​框架代码。仍然是版本 6。我一开始就使用逆向工程系统首先从数据库中启动代码。

        [StringLength(1)]
        public string status { get; set; }

您需要了解的是,在良好的数据库设计中应该是枚举的所有内容都是我数据库中的字符串。在我的 C# 中,我想使用枚举。如何在我的数据库中默认将枚举保存为字符串,并且读取有一个字符串并将其解析为枚举?

4

1 回答 1

1

给定

public enum MyFunkyEnum
{
   SomeValue
}

您可以只使用不在实际数据库模式中的计算属性

public string status { get; set; }

public MyFunkyEnum MyFunkyEnumStatus => (MyFunkyEnum)Enum.Parse(typeof(MyFunkyEnum), status);

注意:如果您有 null 或空字符串,您将需要使用调整逻辑

或两个方向

[NotMapped]
public MyFunkyEnum  MyFunkyEnumStatus
{
    get => (MyFunkyEnum) Enum.Parse(typeof(MyFunkyEnum), status);
    set => status = value.ToString();
}
于 2020-02-04T03:24:56.223 回答