如何建立一对一的关系,每种关系只有七种类型之一-实体框架

迪伦

我有一个名为“ Week”的模型,该模型有一个“ Day”列表,一天中有一个枚举“ DayOfWeek”,其中包含“ Monday”,“ Tuesday”,“ Thursday”,“ Friday”和“ Sunday”

“周”模型

public class Week
{
    public string Id { get; set; } = Guid.NewGuid().ToString();
    //This needs to be only able to have one "Monday" one "Tuesday" etc 
    public virtual List<Day.Day> DaysOfTheWeek { get; set; }
}

“天”模型

public class Day
{
    public string Id { get; set; } = Guid.NewGuid().ToString();
    public Week.Week Week { get; set; }
    //This is my key (for "week") each week should only have one "Monday", one "Tuesday", etc
    public DayOfWeek DayOfWeek { get; set; }
    public virtual List<Class.Class> Classes { get; set; }
}

每个“周”只能具有“日期”,“星期一”,“星期二”,“星期三”等每种类型中的一种。
我该如何使用数据注释/关系来实现这一目标?
感谢,来自Dylan

左小腿

我认为您可以通过两种方式实现这一目标:

  1. 仅使用验证

实施IValidatableObject并检查其中几天的唯一性。

  1. 在上使用复合主键Day,其中包括WeekID和DayOfWeek

这将对物理模型施加约束,并在概念上使Day成为“子实体” Week

您可以执行以下操作(您可能需要进行调整,我没有时间尝试一下):

public class Day
{
  public Week.Week Week { get; set; }
  [Key] 
  [Column(Order = 2)] 
  public DayOfWeek DayOfWeek { get; set; }
  public virtual List<Class.Class> Classes { get; set; }

  [Key] 
  [Column(Order=1)] 
  // Helper for PK; EF will recognize this as the FK by convention
  public string WeekId { get; set; }
}

您也可以通过fluent界面进行类似的配置,而不使用属性。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

与实体框架一对一的建立关系

来自分类Dev

一对一实体框架关系

来自分类Dev

实体框架代码首先在复杂实体之间建立一对一关系

来自分类Dev

如何与实体框架建立一对多关系?

来自分类Dev

实体框架级联一对一或零关系

来自分类Dev

实体框架代码优先一对一关系

来自分类Dev

实体框架中的一对一或零关系

来自分类Dev

实体框架级联一对一或零关系

来自分类Dev

实现实体框架一对一关系

来自分类Dev

一对一关系实体框架

来自分类Dev

实体框架中的一对一关系插入

来自分类Dev

实体框架6:具有继承关系的一对一关系

来自分类Dev

实体框架4.2一对多关系

来自分类Dev

实体框架:一对多关系

来自分类Dev

实体框架一对多关系错误

来自分类Dev

实体框架以一对一关系添加新记录,而对象具有 ID

来自分类Dev

无法在实体之间建立一对一关系

来自分类Dev

实体框架同一实体上的一对多关系

来自分类Dev

实体框架6.4 + PostgreSQL关系一对一单边不包括实体

来自分类Dev

实体框架核心一对一关系在SQL Server中生成一对多

来自分类Dev

实体框架代码优先关系:一对多到多个实体

来自分类Dev

实体框架-在种子方法中将现有实体添加到一对一关系

来自分类Dev

实体框架-在种子方法中将现有实体添加到一对一关系

来自分类Dev

如何使用实体框架添加一对多关系

来自分类Dev

如何在实体框架中加入一对多关系?

来自分类Dev

学说–如何在两个实体之间建立一对一关系

来自分类Dev

实体框架与ASP.NET Boilerplate的一对一关系

来自分类Dev

实体框架:与主体上的外键一对一或零关系

来自分类Dev

实体框架两端可选的一对一关系

Related 相关文章

热门标签

归档