2016-06-24 22 views
0

Es gibt keine Ausnahme. Ich will nur wissen, ob es gut ist oder nicht.Fluent Nhibernate Endlos-Zyklus

Medizin Karte:

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

Firma Karte:

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

Wenn im bekommen "Medikamente" von der Basis versuchen, es mir endlosen Kreislauf zurückgeführt wird. wie folgt aus:

enter image description here

So gibt es Medizin endlos in Unternehmen und umgekehrt Unternehmen Bereich in der Medizin abgelegt.

+0

Was ist dein Problem? –

+0

Es gibt keine Ausnahme. Ich will nur wissen, ob es gut ist oder nicht. –

+1

Dies ist nicht spezifisch für nhibernate. Wenn zwei Objekte sich gegenseitig referenzieren, wird es immer solche endlosen Ketten geben. Nichts falsch daran. –

Antwort

0

Immer wenn ich eine Viele-zu-Viele-Beziehung habe, hatte ich immer die Inverse() zu einer der Maps und ich definiere den Namen der Zwischentabelle, falls Sie sie anrufen müssen. Der Code würde so bleiben:

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

und

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

Ist dies Ihr Problem lösen?

Wenn nicht, bitte teilen Sie Ihren Code, wo Sie versuchen, die Medizin zurück, vielleicht können wir Ihnen dort helfen, um nicht einen unendlichen Zyklus zu erhalten.