2010-11-26 11 views
3

に多くの自己参照:流暢NHibernateは:このクラスとのマッピングを持つ多くの

Public class Something 
{ 
    public int Id; 
    public IList<Something> Similarthings { get; set; } 
} 

public class SomtehingMapping 
    { 
     public SomtehingMapping() 
     { 
      Map(x => x.Id); 
      HasManyToMany(x => x.Similarthings) 
       .Table("SomethingsToSimilarthings") 
       .ParentKeyColumn("SomethingA_Id") 
       .ChildKeyColumn("SomethingB_Id") 
       .Cascade.All(); 
     } 
} 

あなたはこれで終わる:

Table SomethingsToSimilarthings 
------------------------------- 
SomethingA_Id SomethingB_Id 
111    222 
222    111 

が双方向ように、このマッピングを定義する方法はあり関係は1つのデータベース行を使用して表現されますか?

+0

としてあなたがこれを解決しましたことを連想し、マークの反対側を定義するのでしょうか? – alexn

答えて

1

は、あなたがそのようなマッピング属性を設定しようとしたことがありますか?

public class SomtehingMapping 
    { 
     public SomtehingMapping() 
     { 
      Map(x => x.Id); 
      HasManyToMany(x => x.Similarthings) 
       .Inverse() 
       .Table("SomethingsToSimilarthings") 
       .ParentKeyColumn("SomethingA_Id") 
       .ChildKeyColumn("SomethingB_Id") 
       .Cascade.All(); 
     } 
} 

代替は、明示的にinverse="true"

+0

試したことがありません。この文脈でInverse = trueが意味することを想像するのは難しい。私はそれを試して、戻ってきます。 – UpTheCreek

関連する問題