Nhibernate将相同实体的关系保存到其他表中

时间:2013-07-13 10:37:03

标签: hibernate nhibernate orm fluent-nhibernate fluent-nhibernate-mapping

我有一张S表。它可以有一些孩子。儿童是同一类型(S)。

表:S(Id,Name)

表:S_R(Parent_S_Id,Child_S_Id)

课程

public class S
{
    public virtual int Id { get; set; }
    public virtual string Name { get; set; }
    public virtual IList<S> Children { get; set; }

    public S()
    {
        this.Children = new List<S>();
    }

    public virtual void AddChildren(S s)
    {
        this.Children.Add(s);
    }
}

public class SMap : ClassMap<S>
{
    public SMap()
    {
        Table("S");

        Id(x => x.Id, "Id").GeneratedBy.Increment();
        Map(x => x.Name, "Name");

        HasManyToMany<S>(x => x.Children)
            .Table("s_r")
            .ParentKeyColumn("S_ID")
            .ChildKeyColumn("CHILD_S_ID")
            .Cascade.All()
            .LazyLoad()
            .Inverse();
    }
}

但它不起作用。它不是在关系表中保存关系。任何人都可以有任何想法和观点。请分享您的观点和建议。

1 个答案:

答案 0 :(得分:1)

从HasManyToMany中删除Inverse(),因为它告诉NHibernate另一方应该维护关联条目,但是没有其他方面。