2010-11-18 11 views
0

Betrachten Sie den folgenden Code ein:Referenzen ist Cascading nicht

class PrivilegeMap : IAutoMappingOverride<Privilege> 
{ 
    public void Override(FluentNHibernate.Automapping.AutoMapping<Privilege> mapping) 
    { 
     mapping.Table("Privileges"); 

     mapping.References<Role>(x => x.Role) 
      .Cascade.All(); 

     mapping.Map(x => x.Access); 
    } 
} 

In meinem Code habe ich dann einen Benutzer erstellen, die mehrere Privilegien besitzt. Wenn Sie versuchen, den Benutzer zu speichern, führt dies zum Absturz des Programms mit dem folgenden Fehler: "Objekt verweist auf eine nicht gespeicherte vorübergehende Instanz" Es gibt an, dass das Rollenobjekt nicht sicher ist. Wie bekomme ich es in Kaskade?

Antwort

0

Sie haben das Mapping für die Benutzerklasse nicht angezeigt. Hast du Cascade.All(); auf der Rollen-Seite? Ist es eine Referenz, eine HasMany oder eine HasManyToMany?

0

Ich habe es einfach gesagt und bin zu statischen Mappings übergegangen, anstatt alles zu übergehen, was ich nicht mag. Es funktioniert so, wie ich es jetzt möchte.