gpt4 book ai didi

c# - 根据 Entity Framework 中的数据库列值显示枚举文本

转载 作者:行者123 更新时间:2023-11-30 21:48:27 28 4
gpt4 key购买 nike

我有一个映射到数据库表的模型,我在该模型中有一个枚举属性。我在表列中存储了一个 int 值,并为此使用枚举来管理事物(因为我的修复列表很小)。

我的问题是我想要特定数据库列值的枚举文本。

public class Item
{
public int ItemId { get; set; } // ItemId (Primary key)

[Required]
[DisplayName("Category")]
public int? CategoryId { get; set; } // CategoryId

[Required]
public string Name { get; set; } // Name (length: 100)

[DisplayName("Item Code")]
public string ItemCode { get; set; } // ItemCode (length: 15)

[DisplayName("Unit Type")]
public int? UnitId { get; set; } // UnitId
public DateTime? UpdatedOnUtc { get; set; } // UpdatedOnUtc
public DateTime? CreatedOnUtc { get; set; } // CreatedOnUtc

[DisplayName("Is Active")]
public bool IsActive { get; set; } // IsActive

// Reverse navigation
public virtual ICollection<GatePass> GatePasses { get; set; }
public virtual ICollection<MoveOrderItem> MoveOrderItems { get; set; }
public virtual ICollection<ProjectItemPrice> ProjectItemPrices { get; set; }

// Foreign keys
public virtual Category Category { get; set; }

[NotMapped]
public Enums.UnitType UnitType { get; set; }
}

我将枚举值存储在 UnitId 列中,为了显示它的值,我想显示该枚举/枚举显示属性的文本。

我的枚举是UnitType:

public enum UnitType
{
Set = 1,
Km = 2,
No = 3,
Kg = 4,
Mtr = 5
}

我的主要目的是管理 EF 查询中的显示,因为在 EF 列表中我将有 UnitId 但我想显示 UnitType 的单位文本,如 kg、set、no、mtr 等。

我经常在 SQL 中使用 case when as 来做这些事情,但我不知道如何在 EF 中进行管理。

最佳答案

您可以将 UnitType 属性类型更改为 string,然后读取 enum 常量,如下所示:

public string UnitType 
{
get
{
return Enum.GetName(typeof(UnitType), UnitId);
}
}

关于c# - 根据 Entity Framework 中的数据库列值显示枚举文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37642121/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com