Модель Entity Framework First: как создать связь со свойствами - PullRequest
2 голосов
/ 28 января 2012

Я пытаюсь создать модель данных для графа с Node и Edge.Если Edge не содержит какого-либо свойства, я могу просто создать связь «многие ко многим» от узла к себе.Однако я хочу сохранить некоторые свойства на краю, например, расстояние.Я пытался создать другую сущность, но не нашел способа объявить отношения между Edge и Node.Возможно ли это в Model First?Как?

1 Ответ

7 голосов
/ 28 января 2012

Вы должны создать две связи «один ко многим» от узла к краю, чтобы смоделировать собственную ссылку «многие ко многим» с сопоставленной таблицей соединений. В терминах теории графов EF-модели создают ориентированный граф, поэтому он отличается от ребра от A до B и от B до A.

Вы начнете с двух ваших сущностей и их свойств:

enter image description here

Вы перетащите первую ассоциацию из панели инструментов. Начните с узла и перетащите ассоциацию в Edge - это создаст связь один-ко-многим между Node и Edge. Настройте свойства созданной навигации для «исходящих» ребер:

enter image description here

Таким же образом вы перетаскиваете вторую ассоциацию и настраиваете ее свойства для «входящих» ребер:

enter image description here

После создания базы данных из этой модели вы получите следующую структуру таблицы:

enter image description here

...