2016-06-28 58 views
2

我正在開發使用.NET Framework 4.0和C#的Entity Framework 6.1.3庫。在POCO類中使用枚舉

我有一個關於是否可以在POCO類中使用枚舉的問題。

我有這個類和枚舉:

public class MyClass 
{ 
    public byte MyClassId { get; set; } 
    public string Name { get; set; } 
    public byte CodeType { get; set; } 
    public byte HelperCodeType { get; set; } 

    public virtual ICollection<Code> Codes { get; set; } 
    public virtual ICollection<HelperCode> HelperCodes { get; set; } 
} 

public enum CodeTypes : byte 
{ 
    Generated = 0, 
    PrePrinted = 1, 
    PrePrintedAndPreLoaded = 2, 
    PreLoaded = 3, 
    NotUsed = 4 
} 

我想知道如果我可以改變MyClass領域CodeTypeHelperCodeType與枚舉類型,而不是byte

public class MyClass 
{ 
    public byte MyClassId { get; set; } 
    public string Name { get; set; } 
    public CodeTypes CodeType { get; set; } 
    public CodeTypes HelperCodeType { get; set; } 

    public virtual ICollection<Code> Codes { get; set; } 
    public virtual ICollection<HelperCode> HelperCodes { get; set; } 
} 

這是個好想在POCO類中使用枚舉而不是字節?

+0

嘗試並找出:-)如果它有效,那麼您不必進行從字節到枚舉類型的任何手動轉換。 – Maarten

+0

順便說一句,爲什麼PK也是一個字節?你希望少於256條記錄嗎? – Maarten

+0

是的,我預計不會超過四五個記錄。 – VansFannel

回答

4

Entity Framework自一段時間以來支持枚舉(如果我沒有記錯的話,從版本5開始)。在數據庫中,它將使用枚舉的數字類型作爲列類型,在您的情況下它將添加byte列。

我認爲枚舉是一個好主意,如果一些業務邏輯取決於該領域。