J'ai une association unidirectionnelle plusieurs-à-plusieurs: la classe ListDefinition a la propriété Columns de type IList, tandis qu'une colonne peut faire partie de plusieurs ListDefinition- s. Le problème est que, chaque fois que j'essaie de supprimer une colonne d'une collection Columns (sans la supprimer ou la supprimer d'autres ListDefinitions), j'obtiens cette erreur:
objet supprimé serait ré-enregistré par cascade (supprimer l'objet supprimé des associations) [Domain.Lists.Definitions.ListColumnDefinition # 2]Suppression d'un élément d'une association plusieurs-à-plusieurs dans NHibernate
Ma cartographie est générée via NH Courant:
mapping.HasManyToMany(list => list.Columns)
.AsList(part => part.Column("`index`"))
.Cascade.AllDeleteOrphan()
Voici le HBM généré:
< xmlns hibernate-mapping = "urn: NHibernate -mapping-2.2 "default-access =" propriété "auto-impo rt = "true" default-cascade = "tous" default-lazy = "false">
< classe xmlns = "urn: nhibernate-mapping-2.2" mutable = "true" nom = "Domain.Lists.Definitions.ListDefinition , Domaine, version = 1.0.0.0, culture = neutre, PublicKeyToken = null "table =" ListDefinition
">
id access =" nosetter.camelcase-underscore "nom =" Id "type =" System.Int32, mscorlib, version = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089 ">
< nom de colonne =" Id »/>
< classe générateur = "identité"/>
</id>
< cascade de liste = "All-delete-orphan" name = "Colonnes" table = "ListColumnDefinitionToListDefinition" mutable = "true">
< clés>
< nom de colonne = "ListDefinition_id" /> </key>
index <>
< nom de colonne = » index
"/>
</index>
< many-to-many class =" Domain.Lists.Definitions.ListColumnDefinition, domaine, version = 1.0.0.0, Culture = neutral, PublicKeyToken = null ">
< nom de colonne = "ListColumnDefinition_id" />
</many-to-many>
</liste>
</class> </hibernate-mapping>
Vous ne savez pas si je comprends ce que vous faites, Pourriez-vous coller le code approprié? (comment vous supprimez l'entité qui lance cette erreur) –
Je ne * * supprime pas une entité. Je fais juste ceci: listDefinition.Columns.Remove (colonne); – ulu