データベーステーブルにマップするモデルがあり、そのモデルに列挙型プロパティがあります。私はint
テーブルの列に値を格納し、そのために列挙型を使用して物事を管理しています(小さな修正リストがあるため)。
私の質問は、特定のdb列値の列挙型のテキストが必要なことです。
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
表示されますが、kg、set、no、mtrなどのUnitTypeの単位テキストを表示したいためです。
私はSQLを使用してこのようなことを頻繁case when as
に行いましたが、EFで管理する方法がわかりません。
UnitType
プロパティタイプをに変更してからstring
、enum
以下のように定数を読み取ることができます。
public string UnitType
{
get
{
return Enum.GetName(typeof(UnitType), UnitId);
}
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加