EF4 Самостоятельная ссылка с ассоциацией 0..1 -> 1 - PullRequest
2 голосов
/ 01 марта 2011

Много читается о проблемах самоссылки, но я не могу найти ответ на свой вопрос.

Скажем, у меня есть Человек (A), и я хочу, чтобы у А был партнер, другой Человек (B). Естественно, это означает, что у B есть партнер в человеке A. Как бы вы решили это? В идеале мне нужно только сделать:

humanA.Partner = humanB;

и humanB автоматически получат HumanA в качестве партнера.

Я бы подумал, что смогу создать Человеческую сущность и добавить Ассоциацию, что-то вроде:

Конец1 Сущность: Человек , Кратность: 0..1 , свойство навигации: Партнер

Конец 2 Сущность: Человек , Кратность: 0..1

Итак, у каждого человека есть ноль или один партнер, который является человеком.

Спасибо за ваше время.

1 Ответ

0 голосов
/ 01 марта 2011

1: 0..1 сопоставление возможно только тогда, когда сущности "разделяют" первичный ключ .Это означает, что объект FK связанного также является его PK.Таким образом, самоссылка 1: 0..1 не может существовать.Я думаю, что вы не можете даже отобразить это в базе данных напрямую.

...