Ручная ассоциация Entity Framework - PullRequest
0 голосов
/ 03 января 2012

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

Table Group (
   id INT PK,
   year INT PK,
   name VARCHAR
)

Table Person (
    id PK,
    GroupID INT,
    name VARCHAR
)

В базе данных не определены внешние ключи, поэтому я хочу создать ручную связь из таблиц Person GroupID с таблицами Group id.

Для этого я щелкаю правой кнопкой мыши на Персоне и Добавляю ассоциацию. Я создаю ассоциацию «многие к одному», и все работает. Проблема в том, когда я иду, чтобы добавить отображение. Поскольку таблица Group имеет два первичных ключа, структура сущности была чем-то из таблицы Person для сопоставления с ключом year.

Что мне нужно сделать, чтобы создать ассоциацию?

1 Ответ

0 голосов
/ 03 января 2012

Вы не можете создать такую ​​ассоциацию, потому что EF следует тем же правилам, что и база данных.Все столбцы PK из основного объекта должны существовать как столбцы FK в зависимом объекте.

Единственным способом может быть некоторое представление базы данных, выбирающее отдельные группы с Id и Name и отображаемые как объект только для чтения, и создавая навигацию между этими двумя.Я не пробовал, но думаю, это должно сработать.У него будут свои недостатки, поскольку у вас будет две совершенно не связанные сущности для группы, а сущность, связанная с человеком, не примет никаких изменений (без сопоставления пользовательских команд SQL или хранимых процедур для операций вставки, обновления и удаления).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...