我建议您不要更改设计器生成的类的数据类型。如果它是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属性以存储下拉值并在视图中使用该值。 –