如何在MVC ASP.NET中存储布尔矩阵

时间:2015-12-15 12:53:30

标签: c# asp.net asp.net-mvc

我需要存储一个像这样的布尔矩阵:

        public bool[][] Schedule { get; set; }

它基本上是一个在视图中按如下方式应用的时间表:schedule

它在视图中起作用,但我无法在Entity Framework中正确存储它,因为它甚至不能在迁移时创建表。我该如何储存?

1 个答案:

答案 0 :(得分:4)

就在数据库中实际存储此信息而言,以下格式将起作用:

输入数据库表(可选,使用枚举)

Id    Type
1     Segunda
2     Terca
3     Quarta
4     Sexta

值数据库表

Id     TimeFrom    TimeTo    TypeId    Selected
1      8:00        9:00      1         1
2      8:00        9:00      2         1
3      8:00        9:00      3         1
4      8:00        9:00      4         1
5      8:00        9:00      5         1
6      9:00        10:00     1         0
7      9:00        10:00     2         0
8      9:00        10:00     3         1
9      9:00        10:00     4         0
10     9:00        10:00     5         0
11     10:00       11:00     1         1
12     10:00       11:00     2         1
13     10:00       11:00     3         1
14     10:00       11:00     4         1
15     10:00       11:00     5         1

以下域对象将支持此存储布局,例如:

public enum TypeEnum
{
    Segunda = 1,
    Terca = 2,
    Quarta = 3,
    Sexta = 4
}

public class Type
{
    public int Id { get; set; }
    public TypeEnum Type { get; set; }
}

public class Schedules
{
    public int Id { get; set; }
    public DateTime TimeFrom { get; set; }
    public DateTime TimeTo { get; set; }
    public TypeEnum TypeId { get; set; }
    public bool Selected { get; set; }
}

如果您要为多个用户存储此信息,或者只是为了规范化数据,您可以将时间推断到另一个表中。

将这些值映射到合适的视图模型应该很容易从视图中来回映射。