我有一张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();
}
}
但它不起作用。它不是在关系表中保存关系。任何人都可以有任何想法和观点。请分享您的观点和建议。
答案 0 :(得分:1)
从HasManyToMany中删除Inverse(),因为它告诉NHibernate另一方应该维护关联条目,但是没有其他方面。