Как мы можем изменить тип данных свойства в частичном классе?
Привет, я новичок в MVC,
Файл.tt, соответствующий таблице в БД, имеет тип данных String for Gender. Я вручную объявил перечисление для пола в моем классе C#. Я также реализовал концепцию класса Partial и использовал метаданные для изменения типа данных свойства.
Но это, похоже, не влияет на модель, когда я обращаюсь к ней в контроллере. Я все еще получаю тип данных свойства Gender как строку, а не как Enum.
Я создал отдельные Enums для всех выпадающих списков в приложении, и теперь я сталкиваюсь с этой проблемой.
пожалуйста помоги.
1 ответ
Я хотел бы предложить, чтобы вы не меняли тип данных класса, сгенерированного дизайнером. Если это какой-то тип char в БД, тогда тип в конструкторе правильный для схемы БД. Одно из решений - определить перечисления и украсить их атрибутом description, используя метод расширения, как показано ниже:
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();
}
Затем украсьте свой enum следующим образом:
public enum SomeType
{
[Description("Type1")] FirstType,
[Description("Type2")] SecondType,
[Description("Type3")] ThirdType
}
Это позволит вам вызвать SomeType.FirstType.ToDescription(), чтобы передать значение свойству объекта.