Как иметь более 1 связи «многие ко многим»

Моя проблема проста, но я не могу заставить EF понять мою схему базы данных (Oracle).

Проблема

Я хочу смоделировать более 1 отношения М-М, см. диаграмму ниже:

введите здесь описание изображения

Как вы можете видеть, у меня есть книга и журнал, и я хочу сохранить URI для обоих из них, используя таблицу ссылок (таблицу соединений, таблицу пересечений, вы поняли!). В этом случае это «www.google.com», который я хочу сохранить в Журнале 16 и Книге 75, они будут храниться в таблице ссылок в следующем формате, выделенном синим цветом. Для полноты я добавил зеленый пример для ссылки с идентификатором 5. Чтобы вы могли видеть, как данные связаны друг с другом, я думаю, вы согласитесь, что в этом нет ничего сумасшедшего.

В любом случае, когда я пытаюсь обновить модель EF, она жалуется (в Visual Studio) на ошибку в соответствии со строками.

Проблема при отображении фрагментов, начинающихся со строки 210: ограничение внешнего ключа «REF_URI_JOURNAL_FK1» из таблицы REF_URI (REF_ID) в таблицу JOURNAL (REF_ID): столбцы таблицы REF_URI сопоставляются с конечными книгами AssociationSet BOOK_URISet, но ключевые столбцы таблиц JOURNAL не сопоставляются. к ключам EntitySet BOOK, соответствующим этому End.

Да, на самом деле я не получаю это сообщение об ошибке!
Я могу заставить EF работать с 1 отношением M-M, например.

введите здесь описание изображения

и все это работает «хорошо, но когда я добавил второе отношение MM, оно упало с этим сообщением об ошибке выше, например.

введите здесь описание изображения

Кто-нибудь знает, как я могу обойти это?


person Vidar    schedule 24.07.2012    source источник
comment
когда я добавил вторую связь MM Вы имеете в виду: добавил в базу данных обновленную модель EF, верно?   -  person Gert Arnold    schedule 25.07.2012
comment
Да, я добавил еще один внешний ключ в таблицу ссылок, а затем обновил модель.   -  person Vidar    schedule 25.07.2012


Ответы (1)


Для двух связей "многие ко многим" вам нужны две связывающие таблицы (таблицы соединений, таблицы пересечений) REFBOOK_URI и REFJOURNAL_URI. Я думаю, что это то, о чем говорит исключение загадочным образом. Если бы у вас была только одна таблица, это означало бы, что если Журнал 123 ссылается на URI 789, то и Книга 123 также должна ссылаться на URI 789, потому что столбец REF_ID в таблице ссылок будет необнуляемым внешним ключом для оба таблица Journal и таблица Book.

person Slauma    schedule 24.07.2012