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