【问题标题】:How to deal with string enum in database?如何处理数据库中的字符串枚举?
【发布时间】:2020-02-04 03:18:56
【问题描述】:

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

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

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

【问题讨论】:

标签: c# entity-framework


【解决方案1】:

给定

public enum MyFunkyEnum
{
   SomeValue
}

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

public string status { get; set; }

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

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

或双向

[NotMapped]
public MyFunkyEnum  MyFunkyEnumStatus
{
    get => (MyFunkyEnum) Enum.Parse(typeof(MyFunkyEnum), status);
    set => status = value.ToString();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-14
    • 2015-12-09
    • 1970-01-01
    • 2014-01-20
    • 2014-07-23
    相关资源
    最近更新 更多