Структура сущности не видит отношения в полностью определенных отношениях - PullRequest
0 голосов
/ 25 февраля 2020

Я определил эту рекурсивную сущность:

    public class Prefix
    {
        public int PrefixId { get; set; }

        // Many to one relation
        public Nullable<int> PlcObjectId { get; set; }
        public virtual PlcObject PlcObject { get; set; }

        // Many to one relation (! Recursion !)
        public Nullable<int> ParentPrefixId { get; set; }
        public virtual Prefix ParentPrefix { get; set; }

        public string Name { get; set; }
        public string NodeName { get; set; }
        ...

Теперь он понимает, что PlcObjectId и PlcObject должны отображаться в один и тот же столбец. Но он отображает ParentPrefixId и ParentPrefix в отдельные столбцы. Как мне сделать так, чтобы они отображались в один и тот же столбец?

Спасибо!

Изображение взято с pgAdmin (PostgreSQL)

1 Ответ

0 голосов
/ 25 февраля 2020

Я считаю, что ваша проблема связана с тем, что для любого Prefix многие Prefix s могут ссылаться на него. Чтобы отобразить эту взаимосвязь, вам нужно, чтобы ваш класс Prefix содержал конструктор без параметров, например:

    public Prefix()
    {
        Prefixes = new HashSet<Prefix>();
    }

Ps. Причина, по которой ваш столбец PlcObject отображается нормально, заключается в том, что нет рекурсии. Ваш объект Prefix должен обрабатываться как отправитель и получатель отношения многие-к-одному

Редактировать:

Вам также необходимо добавить это поле в свой класс

        public ICollection<Prefix> Prefixes { get; set; }

Вы можете называть это как хотите, например ChildPrefixes или DependentPrefixes.

...