我建議您不要更改設計器生成的類的數據類型。如果它是db中某種類型的char,那麼設計器中的類型對於每個數據庫模式都是正確的。一種解決方法是定義枚舉和使用擴展方法就像下面的描述屬性裝飾一番:
public static string ToDescription(this Enum value)
{
var da =
(DescriptionAttribute[])
(value.GetType().GetField(value.ToString())).GetCustomAttributes(typeof(DescriptionAttribute),
false);
return da.Length > 0 ? da[0].Description : value.ToString();
}
然後decortate您的枚舉是這樣的:
public enum SomeType
{
[Description("Type1")] FirstType,
[Description("Type2")] SecondType,
[Description("Type3")] ThirdType
}
這將允許你打電話SOMETYPE。 FirstType.ToDescription()將值傳遞給您的實體屬性。
嗨...我使用的是你剛纔提到的屬性。我使用自定義的HtmlHelper來填充Enum的性別下拉列表。我也有一個StringValue屬性類,它具有你所提到的描述。我無法將Enumeration名稱從視圖傳遞給HtmlHelper,以便我可以填充下拉列表。 –
在視圖模型上創建一個列表 myEnumsDropDownValues屬性以存儲下拉值並在視圖中使用該值。 –