2016-06-24 7 views
0

exeption.Justはそれがうまくかどうかを知りたいです。流暢なNhibernate無限サイクル

医学マップ:

public MedicineMap() 
    { 
     Id(x => x.Id); 
     Map(x => x.Name); 
     Map(x => x.Date); 
     HasManyToMany(x => x.Companies).Cascade.All(); 
     } 

会社地図:

public CompanyMap() 
    { 
     Id(x => x.Id); 
     Map(x => x.CompanyName); 
     HasManyToMany(x => x.Medicines).Cascade.All(); 
    } 

イムは、それは私に無限のサイクルを返されたベースから "薬" を取得しようとしています。このような :

enter image description here

だから際限医学で医学の会社に提出し、逆に会社のフィールドがあります。

+0

あなたの問題は何ですか? –

+0

exeption.Justはそれが良いかどうかを知りたいのですがありません。 –

+1

これはnhibernate固有ではありません。お互いを参照する2つのオブジェクトがある場合、常にそのような無限のチェーンが存在します。それは間違っていません。 –

答えて

0

私は多対多の関係を持つたびに、いつもInverse()をマップの1つに割り当て、呼び出す必要がある場合に備えて中間テーブルの名前を定義します。あなたのコードは次のように滞在する:

public MedicineMap() 
{ 
    Id(x => x.Id); 
    Map(x => x.Name); 
    Map(x => x.Date); 
    HasManyToMany(x => x.Companies) 
     .Cascade.All() 
     .Inverse() 
     .Table("MedicineCompany"); 
} 

public CompanyMap() 
{ 
    Id(x => x.Id); 
    Map(x => x.CompanyName); 
    HasManyToMany(x => x.Medicines) 
     .Cascade.All() 
     .Table("MedicineCompany"); 
} 

これはあなたの問題を解決していますか?

もしそうでない場合は、薬を返そうとしている場所でコードを共有してください。無限のサイクルを受けないように、私たちがお手伝いできます。