J'ai deux objets qui ont une relation ManyToMany entre eux grâce à une table de mappage. Cependant, lorsque j'essaie de l'enregistrer, j'obtiens une exception de dépassement de pile. Ce qui suit est le code pour les applications:NHibernate ManyToMany Relation en cascade AllDeleteOrphan StackOverflowException
//EventMapping.cs
HasManyToMany(x => x.Performers).Table("EventPerformer").Inverse().Cascade.AllDeleteOrphan().LazyLoad().ParentKeyColumn("EventId").ChildKeyColumn("PerformerId");
//PerformerMapping.cs
HasManyToMany<Event>(x => x.Events).Table("EventPerformer").Inverse().Cascade.AllDeleteOrphan().LazyLoad().ParentKeyColumn("PerformerId").ChildKeyColumn("EventId");
Quand je change les performermapping.cs à Cascade.None() je me débarrasser de l'exception mais mon objet événement n'a pas l'interprète, je lui associons .
//In a unit test, paraphrased
event.Performers.Add(performer); //Event
eventRepository.Save<Event>(event);
eventResult = eventRepository.GetById<Event>(event.id); //Event
eventResult.Performers[0]; //is null, should have performer in it
Comment dois-je écrire correctement? Merci
Conserver également la sauvegarde des entités dans la transaction. – Sly