2016-05-29 113 views
1

我在我的域模型中使用Jimmy Bogard的基於this文章的枚舉類。然而,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

在EF7的初始RTM我們規劃,使複雜和/或類型。

換句話說,你不能在當前的EF Core中做到這一點。

+0

看來他們根據[他們的路線圖](https://github.com/aspnet/EntityFramework/wiki/Roadmap)和[這篇文章](https://github.com/aspnet/) EntityFramework/issues/246),但它們還沒有發佈日期。 –