如何使用每周开放时间属性列表正确创建C#类

时间:2016-11-08 10:16:46

标签: c# entity-framework

我觉得这对你们很多人来说非常明显,但我的研究让我无处可去。 我正在尝试构建一个类,该类将创建具有如下属性列表的对象:

public class MyObject
    {
        [Key]
        public int Id { get; set; }
        public string Title { get; set; }
        public List<OpenHours> OpenHours { get; set; }
        public Filter Filters { get; set; }

    }

我希望 OpenHours 对象存储每日小时列表,以便通过 MyObject.OpenHours [index] .property 来访问它们。

我目前收到的错误是OpenHours对象没有定义的密钥,但我实际上并不希望它作为一个不同的实体存在于我的数据库中,我只是希望它存储属性就像我直接在MyObject类中列出每个weekDay属性一样。

这是OpenHours课程:

public class OpenHours
{
    public DayOfWeek Day { get; set; }
    public string StartTime { get; set; }
    public string EndTime { get; set; }
}

我想要我的每一个&#34; MyObject&#34;对象具有唯一的OpenHours值,因此我不想为它创建一个Id。 我在语法中遗漏了什么,或者这样做是不是很糟糕?

提前感谢您的回答!

编辑:之后有人回答并删除了他的回答,所以我无法将其标记为正确答案,但解决方法是将[ComplexType]添加到我的班级:

[ComplexType]
public class OpenHours
{
    public DayOfWeek Day { get; set; }
    public string StartTime { get; set; }
    public string EndTime { get; set; }
}

2 个答案:

答案 0 :(得分:2)

如果每个条目都是唯一的,那么如果您不想引入id,请创建复合主键。将所有属性设为主键。这在DB术语中效率低于仅创建Id作为主键。

答案 1 :(得分:0)

之后有人回答并删除了他的答案,所以我无法将其标记为正确的答案,但解决方法是将 [ComplexType] 添加到我的班级:

[ComplexType]
public class OpenHours
{
    public DayOfWeek Day { get; set; }
    public string StartTime { get; set; }
    public string EndTime { get; set; }
}

有关复杂类型的其他信息的链接: