0

我有一個S表。它可以有一些孩子。孩子是同一類型(S)。Nhibernate將相同實體的關係保存到其他表中

表:S(ID,姓名)

表: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

從HasManyToMany中移除Inverse(),因爲它告訴NHibernate對方應該維護關聯項,但沒有其他方面。

相關問題