2016-05-29 9 views
1

Я использую классы перечисления на основе this статьи от Jimmy Bogard в моей модели домена. Однако EF рассматривает классы как объекты и хочет определить ключ.Использование классов перечисления в EF

Есть ли способ сделать EF сохранением значений из классов перечисления, как это происходит со стандартными перечислениями на C#?

Это, как я в настоящее время реализован класс перечисления:

public class ReservationStatus : Enumeration 
{ 
    public static readonly ReservationStatus Outstanding = new ReservationStatus(0, "Oustanding"); 
    public static readonly ReservationStatus Paid = new ReservationStatus(1, "Paid"); 
    public static readonly ReservationStatus Canceled = new ReservationStatus(2, "Canceled"); 
    public static readonly ReservationStatus Rejected = new ReservationStatus(3, "Rejected"); 

    private ReservationStatus() { } 
    private ReservationStatus(int value, string displayName) : base(value, displayName) { } 
} 

public class Reservation : Entity<int> 
{ 
    public ReservationStatus Status { get; set; } 
} 

Я использую EF 7 RC1.

+0

Вы пытаетесь пометить как '[key]' 'public ReservationStatus Status {get; задавать; } '? –

ответ

1

В EF6 вы можете настроить ReservationClass как ComplexType, игнорировать DisplayName и карту Value.

К сожалению для вас, в соответствии с these design meeting notes:

В начальном RTM из EF7 мы не планирует включить сложные и/или значения типов.

Другими словами, вы не можете сделать это в текущем сердечнике EF.

+0

Кажется, у них есть это в своем отставании в соответствии с [их дорожной картой] (https://github.com/aspnet/EntityFramework/wiki/Roadmap) и [этот пост] (https://github.com/aspnet/ EntityFramework/issues/246), но их пока нет. –

Смежные вопросы