如何在 EF 模型中使用代码和值字符串对来代替 Enum

问题描述 投票:0回答:1

在 C# 中定义模型类时,我可以使用 Enum,它默认将整数值保存到数据库中。我想定义一个类似枚举的类,它有一个短字符串或常量值要保存到数据库中,并且在代码中引用它时要显示不同的值。

例如:信用卡提供商的枚举将是......

public enum CreditCardProvider
{
    Visa = 1,
    [Display(Name ="Master Card")]
    MasterCard = 2,
    [Display(Name ="American Express")]
    AmericanExpress = 3
}

我想使用一个基本上工作原理非常相似的对象,但返回一个常量/字符串值而不是整数,例如:

public class CreditCardProvider
{
    Visa = "VI",
    [Display(Name ="Master Card")]
    MasterCard = "MC",
    [Display(Name ="American Express")]
    AmericanExpress = "AX"
}

这可能吗?在我的 C# 模型中,CreditCardProvider 类将保留代码(VI、MC、AX),而不是保存整数值的 CreditCardProvider 枚举类型。

我尝试过创建结构,它对于填充下拉列表效果很好,但对于支持实体框架不太有效。

c# enums
1个回答
0
投票

您可以为 EF 模型的属性定义自己的转换器。看看https://stackoverflow.com/a/72082977/1838048

© www.soinside.com 2019 - 2024. All rights reserved.