Des questions similaires ont été posées, mais je ne trouve pas de réponse, alors voilà. J'ai la relation suivante Fluent cartographié:Fluent NHibernate Cascade Delete Error
HasMany<UserFilter>(x => x.UserProjectFilters)
.KeyColumns.Add("UserProfileID")
.Cascade.All()
.AsSet()
.Inverse()
.Cache.ReadWrite();
Lorsque je tente de supprimer un parent (entité de filtre) cependant, la suppression ne CASCADE pas; Je vois l'exception: "L'instruction DELETE est en conflit avec la contrainte REFERENCE ...". Dans NH Profiler, je vois que l'instruction Delete est générée pour le parent, mais aucune n'est générée pour l'enfant. Je m'attendrais à ce que la suppression de tous les enfants soit exécutée avant le parent. Qu'est-ce que je fais mal?
est ici la fin de UserProfileFilter de la relation:
References<Filter>(x => x.Filter)
.Column("FilterID")
.LazyLoad()
.Cascade.SaveUpdate();
Merci! Andy
Essayez de prendre la .Cascade.SaveUpdate() de retour dans la référence de l'enfant de filtrer et de voir ce que ça fait. Cela peut vous aider à résoudre vos problèmes si vous simplifiez vos relations. Si vous regardez le SQL est-il essayer de supprimer le parent (filtre) en premier? –