#realJSOP Ответов: 0

Борьба с entity framework 6


У меня возникли проблемы с тем, чтобы обернуть голову вокруг EF6.

У меня есть следующие таблицы:

AspNetUsers (сущность, предоставляемая MVC)
ICSProfile
ICSEvent
ICSVehicle
ICSEventClass
ICSEventEntry

Я хочу связать их следующим образом:

0) данный AspNetUser может иметь одну запись ICSProfile. Данный профиль может иметь одну или несколько записей ICSVehicle.

1) Данный ICSProfile может иметь один или несколько ICSEvents. Событие может иметь один или несколько классов Icsevent.

(вот тут я немного изворотлив)

2) Данный ICSProfile может ввести один или несколько транспортных средств в ICSEvent один или несколько раз, но каждая запись для данного транспортного средства должна быть в другом классе Icsevent внутри ICSEvent.


Итак, предположим, что нашего владельца автомобиля зовут Джон, и у него есть Мустанг 2012 года выпуска и Мустанг 1967 года выпуска. Предположим также, что пользователь Bob создал событие, имеющее три класса:

2005-2014 Мустанг
1965-1973 Мустанг
Уличная Машина, Все

Джон хочет ввести свой Мустанг 2012 года выпуска в 2005-2014 Mustang класс, а также Street Machine All класс, и, наконец, он хочет ввести свою другую машину в класс. 1965-73 Mustang класс.

Что я уже пробовал:

До сих пор моя диаграмма сущностей выглядит следующим образом:

AspNetUser(1)<--->(1)ICSProfile(1)<--->(*)ICSVehicle(1)<--------------------------\
                   |                                                              |
                   |                                                              |
                   |                                                              |
                  (*)ICSEvent(1)<-->(*)ICSEventClass(*)<-->(*)ICSEventEntry(*)<---/


Это правда? Это выглядит странно? Это выглядит как большой круг (а круги обычно плохи, когда вы пишете код).

Если я недостаточно хорошо объяснил это, дайте мне знать, и я изменю вопрос.

Richard Deeming

Разве это не должно быть: ICSEventClass(1)<-->(*)ICSEventEntry

Предположительно, каждая запись предназначена только для одного класса.

Если вам не нужно хранить дополнительные детали вместе с записью, это фактически отношение "многие ко многим" между ними. ICSVehicle и ICSEventClass.

0 Ответов