Соединительные таблицы: изменение модели «многие ко многим» на «один ко многим» в модели Entity Framework - PullRequest
1 голос
/ 11 мая 2011

У меня есть набор таблиц, как показано ниже:

PositionShiftPattern
PositionShiftPatternID
PositionID

EmployeePositionShiftPattern
EmployeePositionShiftPatternID
EmployeePositionID

TemplateShiftPattern
TemplateShiftPatternID

Неделя
WeekID

PositionShiftPatternJunction
PositionShiftPatternID
WeekID

EmployeePositionShiftPatternJunction
EmployeePositionShiftPatternID
WeekID

TemplateShiftPatternJunction
TemplateShiftPatternID
WeekID

Таким образом, PositionShiftPattern, EmployeePositionShiftPattern и TemplateShiftPattern каждый имеют переход к неделе с отношениями один-ко-многим между ними.

Очевидно, что EF отобразит отношения между PositionShiftPattern, EmployeePositionShiftPattern и TemplateShiftPattern и Week как многие-ко-многим и создаст свойства навигации из каждой таблицы непосредственно в Week.

Можно ли затем изменить отношения «многие ко многим» на отношения «один ко многим» (например, каждая неделя должна отображаться на один ShiftPattern)? Я пытаюсь добиться взаимного исключения (см. Диаграмму ниже) и хочу не добавлять просто PositionShiftPatternID, EmployeePositionShiftPatternID и TemplateShiftPatternID в неделю. Должен ли я искать другой способ достижения взаимного исключения?

Взаимное исключение

Спасибо

1 Ответ

0 голосов
/ 11 мая 2011

Нет, это невозможно. Отношение должно быть таким же, как в базе данных. Если вы создадите отношение «один ко многим», оно будет считаться новым, и вам придется добавлять эти идентификаторы на неделю. Также, когда вы смотрите на вашу модель, не имеет смысла вводить такое отношение. В настоящее время сдвиг может быть связан со многими неделями, а неделя может иметь много смен. Если вы введете один ко многим, это будет означать, что у каждой недели может быть только одна смена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...