2016-12-31 8 views
0

私は曜日の列挙型を持っている:選択された列挙値

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

私はデータを永続化するために使用されたエンティティモデルで選択DaysOfWeekの配列またはリストを保存しようとしています第EFコードを使用して、データベース内の:

1つの 以上 DaysOfWeek値を保持するが、として移入するとき、これはNULL値をもたらすべき
public IEnumerable<DaysOfWeek> SelectedWeekendDays { get; set; } 

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

私の質問は、選択された列挙型の値をエンティティモデルに格納する方法です。どんな助けでも大歓迎です。

+0

は 'SelectedWeekendDays'がデータベースにデータを永続化するために使用されている選択された列挙型を確認するためにEnum.HasFlagを使うのか?あなたのモデルがどのように使用されているかを共有することもできますか? – Alexei

+0

アレクセイ:ありがとう - 更新 – RickL

答えて

1

プロパティは、あなたのViewModelであり、あなたがこのアプローチで行くことができると仮定すると:

public DaysOfWeek SelectedEnum { get; set; } 

それともあなたが望む場合にのみ行うことができますあなたのPOCOクラスに以下のようなプロパティを作成し、そこに選択された列挙型を保存しますその数値複数の場合

public int SelectedEnum { get; set; } 

更新

を格納し、あなたがCRことができます代わりに、その基本的にINT []をeate:ここ

public int[] SelectedEnum { get; set; } 

そして、それを移入する方法:私は正しいだ場合

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

Valkyriee:ありがとう、提案が、私は1つ以上の値を格納しようとしています。私はint [] SelectedEnumを試しましたが、ダイスはありません - まだヌル値 – RickL

+0

@RickLiguzもしあなたが1つ以上のアイテムを保持したい場合は、あなたのアプローチが正しいでしょう。 – 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などのように定義します。これは、組み合わせた列挙定数の個々のフラグが重複しないことを意味します。

そして

+0

あなたの提案をお寄せいただきありがとうございます.-私は[Flags]属性を見つけられませんでした。私が持っていた主な問題は、列挙リストをデータベースに保存して処理のために取得しようとすることでした(私は思う)。これはうまく動作せず、行く方法でもありません。再度、感謝します – RickL

関連する問題