实体模型

时间:2016-12-31 11:58:16

标签: asp.net asp.net-mvc

我有一周的日子:

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 }

所以我的问题是,如何将选定的枚举值存储在实体模型中。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

假设属性在ViewModel中,您可以采用这种方法:在POCO类中创建如下所示的属性并将选定的枚举存储在那里:

public DaysOfWeek SelectedEnum { get; set; }

或者如果您愿意,您只能存储其数值

public int SelectedEnum { get; set; }

<强>更新

对于Multiple,您可以创建一个int [],基本上是:

public int[] SelectedEnum { get; set; }

在这里如何填充它:

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

答案 1 :(得分: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检查所选的枚举