[英]Show enum text based on database column value in Entity Framework
我有一個映射到數據庫表的模型,在該模型中有一個枚舉屬性。 我在表列中存儲一個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等。
我經常在用case when as
使用SQL case when as
但是我不知道如何在EF中進行管理。
您可以將UnitType
屬性類型更改為string
,然后讀取enum
常量,如下所示:
public string UnitType
{
get
{
return Enum.GetName(typeof(UnitType), UnitId);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.