具有多个相同类型的多对多列表的Nhibernate实体?

Rob*_*ens 7 nhibernate nhibernate-mapping fluent-nhibernate

有没有人知道我如何映射具有相同子类型的两个多对多集合的实体.

我的数据库结构是这个....

"正常"关系将是....

tbl_Parent
  col_Parent_ID

tbl_Parent_Child_Xref
   col_Parent_ID
   col_Child_ID

tbl_Child
   col_Child_ID
Run Code Online (Sandbox Code Playgroud)

替代关系是......

tbl_Parent
  col_Parent_ID

tbl_Include_ParentChild_Xref
   col_Parent_ID
   col_Child_ID

tbl_Child
   col_Child_ID
Run Code Online (Sandbox Code Playgroud)

实体和映射看起来像这样......

public partial class ParentEntity : AuditableDataEntity<ParentEntity>
{
  public virtual IList<ChildEntity> Children { get; set; }
  public virtual IList<ChildEntity> IncludedChildren { get; set; }
}

public partial class ParentMap : IAutoMappingOverride<ParentEntity>
{
    public void Override(AutoMapping<ParentEntity> mapping)
    {
        mapping.Table("tbl_Parent");

        mapping.HasManyToMany(x => x.Children)
        .Table("tbl_Parent_Child_Xref")
        .ParentKeyColumn("col_Parent_ID")
        .ChildKeyColumn("col_Child_ID")
        .Inverse()
        .Cascade.All();

        mapping.HasManyToMany(x => x.IncludedChildren)
        .Table("tbl_Include_ParentChild_Xref")
        .ParentKeyColumn("col_Parent_ID")
        .ChildKeyColumn("col_Child_ID")
        .Inverse()
        .Cascade.All();
    }
}
Run Code Online (Sandbox Code Playgroud)

我得到的错误是 "System.NotSupportedException:无法弄清楚多少属性'孩子'的另一面应该是什么."

我正在使用NHibernate 2.1.2,FluentNhibernate 1.0.

Bry*_*anD 0

您知道我只是在黑暗中拍摄,但这几乎听起来 Hibernate 不知道您的 ChildEntity 类..这通常是我看到此类消息的地方。Hibernate 检查您的类并查看 id 不知道的引用类(在本例中为 ChildEntity)。

也许您已经继续前进并发现了问题,但您认为无论如何我都会看到。