Как отобразить несколько корневых типов для агрегатных отношений в NHibernate? - PullRequest
2 голосов
/ 14 марта 2011

Допустим, у меня есть класс Child, который содержится в других классах (в этом примере ParentA и ParentB). В следующем простом случае демонстрируется простая модель, в которой ParentA и ParentB содержат набор дочерних объектов.

public class ParentA
{
    public virtual ISet<Child> Children { get; set; }
}

public class ParentB
{
    public virtual ISet<Child> Children { get; set; }
}

public class Child
{
}

Переход от родителя к ребенку не является проблемой в этом простом случае. Но теперь я хочу иметь возможность перейти к родителю. Обычно я бы представил интерфейс IParent)

public class ParentA: IParent
{
    public virtual ISet<Child> Children { get; set; }
}

public class ParentB
{
    public virtual ISet<Child> Children { get; set; }
}

public class Child
{
    public virtual IParent Parent { get; set; }
}

Вопрос теперь в том, как бы вы отобразили такие отношения в NHibernate?

1 Ответ

1 голос
/ 14 марта 2011

У Айенде есть образец модели блога NHibernate.И Tag сущность имеет ссылку на своего родителя со свойством, называемым Entity.Тип Entity - object, и он сопоставляется либо Post, либо Blog.Это может быть то, что вы ищете.

Все файлы в модели здесь Tag source и mapping

...