Я хочу создать две таблицы ниже, используя подход кода Entity Framework 6. Я могу использовать атрибутную нотацию или свободный API или их комбинацию.
В основном я хочу знать, как создать сопоставления между двумя сущностями, чтобы внешние ключи создавались правильно, и каким будет виртуальное свойство в каждой сущности (Icollection или объекте).
Имя таблицы - Родительский
+-------------+-------+-----------------------+
| ColumnName | Type | Constraint |
+-------------+-------+-----------------------+
| ParentId | int | Primary Key |
| LastChildId | int | Foreign Key, Nullable |
+-------------+-------+-----------------------+
Примечание- LastChildId столбец содержит последний ChildId , если есть дочерний элемент, соответствующий ParentId in parent table else NULL.
Имя таблицы - Child
+------------+-------+----------------------+
| ColumnName | Type | Constraint |
+------------+-------+----------------------+
| ChildId | int | Primary Key |
| ParentId | int | ForeignKey, Not Null |
+------------+-------+----------------------+
Пример
Таблица - Родитель
+----------+-------------+
| ParentId | LastChildId |
+----------+-------------+
| 1 | Null |
| 2 | 1 |
| 3 | 3 |
+----------+-------------+
Таблица - Ребенок
+---------+----------+
| ChildId | ParentId |
+---------+----------+
| 1 | 2 |
| 2 | 3 |
| 3 | 3 |
+---------+----------+
Дополнительная информация:
- С родителем может быть связано несколько дочерних элементов, т. Е. Отображение один-ко-многим (родитель-потомок). Дочерняя виртуальная собственность должна быть ICollection.
- С одним дочерним элементом может быть связан только один родитель, т. Е. Сопоставление один к одному (дочерний элемент к родительскому элементу).