我有一组表格如下:
PositionShiftPattern
PositionShiftPatternID
PositionIDEmployeePositionShiftPattern
EmployeePositionShiftPatternID
EmployeePositionIDTemplateShiftPattern
TemplateShiftPatternID周
WeekIDPositionShiftPatternJunction
PositionShiftPatternID
WeekIDEmployeePositionShiftPatternJunction
EmployeePositionShiftPatternID
WeekIDTemplateShiftPatternJunction
TemplateShiftPatternID
WeekID
因此,PositionShiftPattern,EmployeePositionShiftPattern和TemplateShiftPattern每个都有一个与Week的结点,中间有一对多的关系。
显然,EF会将PositionShiftPattern,EmployeePositionShiftPattern和TemplateShiftPattern与Week之间的关系映射为多对多关系,并将每个表的导航属性直接创建为Week。
是否有可能将多对多关系更改为一对多关系(例如,每周应映射到单个ShiftPattern)?我正试图实现互斥(见下图),并希望避免只将PositionShiftPatternID,EmployeePositionShiftPatternID和TemplateShiftPatternID添加到Week。我应该考虑另一种实现互斥的方式吗?
由于
答案 0 :(得分:0)
不,不可能。该关系必须与数据库中的关系相同。如果您创建一对多关系,它将被视为一个新关系,您将不得不将这些ID添加到周。另外,在查看模型时,引入这种关系也没有意义。目前Shift可以与很多周有关,而周可以有很多班次。如果你引入一对多,那就意味着每周实例只能有一个班次。