У меня есть класс, как показано ниже:
public class Node
{
public int NodeID { get; set; }
public virtual ICollection<Node> Froms { get; set; }
public virtual ICollection<Node> Tos { get; set; }
}
Когда Code First отобразил его в 2 таблицы:
- 1007 * Вершина *
- NodesNodes
И два От одного ко многим Отношения между ними,
Теперь вопрос в том, как я могу сделать ef, чтобы сделать 3 таблицы, как показано ниже:
- 1019 * Вершина *
- Froms
- Tos
И два От одного ко многим Отношения между узлами и Froms плюс узлы и Tos
Я разместил два изображения в своем сообщении asp.net, которые могут помочь
asp.net сообщение
ПОДРОБНОЕ ОПИСАНИЕ
Позвольте мне подробнее описать существующую проблему:
Я моделирую трубопроводную систему, которая имеет структуру, подобную узлу, который я уже упоминал. Трубопровод может начинаться со многих других конвейеров и может заканчиваться многими другими конвейерами, например: трубопровод № 1 начинается с номера 2,3,4 и заканчивается номерами 5 и 6.
Каркас сущности отобразил класс конвейера (Node) на две таблицы, как показано ниже:
Nodes
=========
ID
---------
1
2
3
4
5
6
NodeNodes
============================
Node_NodeID Node_NodeID1
----------------------------
1 2
1 3
1 4
5 1
6 1
Отлично! EF очень умно помещает начало и конец в одну таблицу, но в чем главная проблема?!
Когда пользователь определяет начало и конец конвейера номер 1, если он посмотрит на 2,3 и 4, то увидит, что они заканчиваются на 1, а если он пойдет на 5 и 6, он увидит, что они начинаются с 1. Эта дополнительная информация ( конечно они верны) не желательно.
Я думаю о решении и придумываю идею: если у меня есть две таблицы для ОТ и ТО, я не объясню проблему.
Например:
Froms
============================
Node_NodeID From_NodeID1
----------------------------
1 2
1 3
1 4
Tos
============================
Node_NodeID To_NodeID1
----------------------------
1 5
1 6