我有一周的日子:
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 :(得分: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
检查所选的枚举