К сожалению, enums
изначально не поддерживается в EF 4.1. Вот одна довольно известная статья о том, как с ними бороться: Поддельные перечисления на EF 4 . Однако для этого требуется обертка.
Однако в EF 4 существует более простой способ отображения перечислений: просто создайте свойство int в своем классе, чтобы представить значение int для перечисления. Это свойство, которое EF должен отобразить, а затем иметь свойство «мини-оболочки», позволяющее использовать перечисление.
public class Appointment
{
public int ID { get; set; }
public string Description { get; set; }
// This property will be mapped
public int DayOfWeekValue { get; set; }
public DayOfWeek Day
{
get { return (DayOfWeek) DayOfWeekValue; }
set { DayOfWeekValue = (int) value; }
}
}
public enum DayOfWeek
{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
}
При создании базы данных EF с радостью проигнорирует любой тип, который он не умеет отображать, но свойство int будет отображено.
Примечание: Это взято непосредственно из моего ответа на другой enum
и EF
вопрос: EF 4.1 Code First - отобразить упаковку перечисления как сложный тип