2016-12-31 145 views
0

我這一週的天枚舉:選擇枚舉值

public enum DaysOfWeek 
{ 
    Sunday, 
    Monday, 
    Tuesday, 
    Wednesday, 
    Thursday, 
    Friday, 
    Saturday 
} 

我想以這種存儲用於保留數據的實體模型數組或選擇DaysOfWeek列表在數據庫中使用EF代碼第一:

public IEnumerable<DaysOfWeek> SelectedWeekendDays { get; set; } 

應保持一個或多個 DaysOfWeek值,但是當作爲填充這產生一個空值:

SelectedWeekendDays = new List<DaysOfWeek> { DaysOfWeek.Sunday, DaysOfWeek.Saturday } 

所以我的問題是,如何將選定的枚舉值存儲在實體模型中。任何幫助將不勝感激。

+0

是'SelectedWeekendDays'用於數據保存到數據庫中?你還可以分享你的模型如何使用(EF代碼第一或數據庫第一等)? – Alexei

+0

Alexei:謝謝 - 更新 – RickL

回答

1

假設屬性是你的視圖模型,你可以用這種方法去:在你POCO類創建一個屬性像下面和所選擇的枚舉存儲在那裏:

public DaysOfWeek SelectedEnum { get; set; } 

或者,如果你願意,你可以只存儲其數值

public int SelectedEnum { get; set; } 

更新

爲多,你可以CR eate一個INT []代替,所以基本上:

public int[] SelectedEnum { get; set; } 

這裏如何填充它:

public int[] Population() 
{ 
    int[] Example = { Convert.ToInt32(DaysOfWeek.Sunday), 
    Convert.ToInt32(DaysOfWeek.Saturday), so on... }; 
    return Example; 
} 
+0

Valkyriee:謝謝你的建議,但我試圖存儲一個或多個值。我試過int [] SelectedEnum但沒有骰子 - 仍爲空值 – RickL

+0

@RickLiguz如果你想持有多個項目你的方法是正確的,也許你是不正確地填充它? – Valkyrie

+0

@RickLiguz反正更新:) – Valkyrie

0

如果我是正確的,你應該把它定義Flag屬性

[Flags] 
public enum DaysOfWeek 
{ 
    None = 0, 
    Sunday = 1, 
    Monday = 2, 
    Tuesday = 4, 
    Wednesday = 8, 
    Thursday = 16, 
    Friday = 32, 
    Saturday = 64 
} 

以2的冪定義枚舉常量,即1,2,4,8等等。這意味着組合枚舉常量中的各個標誌不會重疊。

並使用Enum.HasFlag檢查所選枚舉

+0

感謝您的建議 - 我之前沒有遇到[Flags]屬性,因此那是改進列表中的一個。我遇到的主要問題是(我認爲)試圖將枚舉列表保存到數據庫並檢索它進行處理,這不起作用,並且不是要走的路。再次感謝 – RickL