Entity Framework - добавить свойство навигации вручную
Я создал модель базы данных Entity (4.0) из моей базы данных. Я не проектировал базу данных и не имел никакого контроля над схемой, но есть несколько таблиц, которые не имеют ограничений внешнего ключа, но определено неявное отношение.
Например:
У меня есть таблица под названием People, которая имеет следующие столбцы:
GenderID
RaceID
Существуют таблицы как для пола, так и для расы, но в таблице "Люди" нет внешнего ключа.
Когда я импортировал модель, она не добавила свойства навигации для этих отношений. Я попытался добавить его вручную, но от роли и роли отключен. Я не уверен, как добавить отношения самостоятельно. Как это сделать?
Ответы
Ответ 1
Yup - это не так просто.
Вот что вы делаете:
1 - щелкните правой кнопкой мыши конструктор, Добавить → Ассоциация
2 - Настройте связь и мощности (Люди *.. 1 Пол, Люди *.. 1 Раса)
3 - Перейдите в Обозреватель моделей → Ассоциации
4 - Щелкните правой кнопкой мыши на только что созданные ассоциации, нажмите Свойства
5 - Здесь вам нужно настроить конечные точки для параметров ключа и каскада. Убедитесь, что конечные точки верны. Вы также можете настроить ссылочное ограничение для своего неявного навигационного свойства.
6 - Сопоставьте навигационное свойство с соответствующими таблицами/полями.
7 - Подтвердите свою модель, скрестите пальцы.
Надеюсь, что это поможет.
Ответ 2
Я столкнулся с этим сообщением в блоге, в котором предлагается следующее решение, которое отлично подойдет для меня (к сожалению, я не смог заставить RPM1984 работать в моей ситуации).
- Добавить ассоциацию через контекстное меню контекстного контекстного меню дизайнера
- Настройте свою Ассоциацию (обязательно снимите создание внешнего ключа)
- Щелкните правой кнопкой мыши на ассоциации и выберите "Свойства"
- Нажмите кнопку ... для ссылочного ограничения
- Установить связь между клавишами внутри
- Проверить (из контекстного меню дизайнера)
- ???
- Profit!