Entity Framework 4 - использовать одну таблицу сопоставления для всех отношений «многие ко многим» - PullRequest
1 голос
/ 22 февраля 2011

Я хотел бы отобразить все отношения «многие на май» через одну таблицу в моей базе данных.Это означает, что у меня есть многочисленные таблицы (сущности), которые имеют различные отношения «многие ко многим».Вместо того, чтобы иметь отдельную таблицу сопоставления для каждого отношения, я хотел бы использовать одну таблицу «основного сопоставления», имеющую столбцы: End1Id & End2Id.

Не спрашивайте, почему;) Это требуется моим заказчиком ...

Как бы я настроил это в конструкторе моделей, или мне нужно редактировать edmx xml напрямую .... или это просто невозможно?

Спасибо за вашу помощь!

Ответы [ 2 ]

1 голос
/ 22 февраля 2011

В таком сценарии вы не можете иметь явные внешние ключи, потому что таблица, подобная этой, обычно имеет по крайней мере три строки:

  1. PK таблицы 1
  2. PK таблицы2
  3. Тип отображения, , который указывает точные таблицы для использования .

. Из-за этого вы можете просто создать таблицу в EF, но она будеттакже не имеет связей с другими таблицами, и вам придется выполнять соединения вручную.

0 голосов
/ 22 февраля 2011

Вам необходимо установить эту таблицу Master Mappings вручную.Дизайнер не делает этого автоматически для вас.

Однако - если вы ищете денормализованные объекты, лучше, чтобы они были денормализованы на уровне БД, а не на уровне EF / кода.

...