Как я могу вручную добавить составную ассоциацию в платформу сущностей? - PullRequest
7 голосов
/ 24 февраля 2009

Это похоже на обычный случай, но по какой-то причине я зашел в тупик слабым редактором EF.

У меня есть две таблицы, вот так:

Table1
(
Column1 int, PK
Column2 int, PK
)

Table2
(
Column1 int, PK, FK
Column2 int, PK, FK
Column3 int, PK
)

Теперь база данных (вне нашего контроля) не имеет ограничений внешнего ключа. В этом примере предполагается, что в Table2 есть ограничение внешнего ключа, которое ссылается на Table1 (Column1, Column2). Другими словами, первые два столбца таблицы 2 ссылаются на первичный ключ из таблицы 1. Это повседневная проблема в любой обычной базе данных.

В других средах, таких как LLBLGenPro, мы можем вручную добавить отношение очень тривиальным образом. Однако мы не можем понять, как этого добиться в редакторе EF. Это окно «Детали отображения» ужасно и не интуитивно понятно. До сих пор нам удавалось выбирать различные таблицы в отображении, но всегда кажется, что нужно связать все столбцы.

Любые идеи или ссылки?

Ответы [ 3 ]

7 голосов
/ 27 апреля 2009

Предполагая, что у вас есть две сущности на месте.

  1. Щелкните правой кнопкой мыши заголовок сущности Table1 и выберите Добавить ассоциацию.
  2. Выберите Table2 с правой стороны. (Установите любые другие свойства в этом мастере)
  3. Выберите вновь созданную ассоциацию и отредактируйте отображение. (Уже должен быть выбран)
  4. В окне Сведения о сопоставлении выберите Таблица2

Так и должно быть.

1 голос
/ 24 февраля 2009
  1. Создание «временных» таблиц с такими же столбцами, но с соответствующими FK. Используйте резервную копию БД, если вы не можете изменить «реальную». Не надо составлять таблицы без ФК. Это может быть проще, если вы используете новую модель, так как удаление в конструкторе не удаляет сопоставления магазина.
  2. Сопоставьте их с волшебником.
  3. Открыть EDMX как XML (не в дизайнере)
  4. Поиск и замена имен таблиц с использованием таблиц, которые вы действительно хотите отобразить.
  5. Удалите «временные» таблицы.

Общий совет: редактируйте EDMX вручную при выполнении нестандартных задач. Нет ФК = нестандартный. GUI конструктор обрабатывает только определенные случаи.

0 голосов
/ 22 марта 2012
  1. Щелкните правой кнопкой мыши заголовок сущности Table1 и выберите добавить ассоциацию.
  2. Выберите Таблица2 с правой стороны. (Установите любые другие свойства в этом мастере)
  3. Дважды щелкните вновь созданную ассоциацию и установите свойства
...