如何在NHibernate中为聚合关系映射多个根类型?

时间:2011-03-14 10:19:56

标签: nhibernate mapping aggregate

让我们说我有一个类Child,它包含在不同的其他类中(本例中为ParentA和ParentB)。以下简单示例演示了一个简单模型,其中ParentA和ParentB都包含一组Child对象。

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 个答案:

答案 0 :(得分:1)

Ayende有一个样本NHibernate Blog模型。 Tag实体对其父级具有名为Entity的属性的引用。 Entity的类型为object,并且映射为PostBlog。它可能就是你要找的东西。

模型here中的所有文件 标记sourcemapping