Аналогичные вопросы были заданы, но я не нахожу ответа, поэтому здесь. У меня есть следующая Fluent отношения сопоставляются:Fluent NHibernate Cascade Ошибка удаления
HasMany<UserFilter>(x => x.UserProjectFilters)
.KeyColumns.Add("UserProfileID")
.Cascade.All()
.AsSet()
.Inverse()
.Cache.ReadWrite();
При попытке удалить родительскую (Filter объект), хотя, удаление не каскад; Я вижу исключение: «Операция DELETE противоречит ограничению REFERENCE ...». В NH Profiler я вижу, что для родителя создается инструкция «Удалить», но ни один из них не генерируется для дочернего элемента. Я ожидаю, что удаление для любых детей будет выполнено до родителя. Что я делаю не так?
Вот конец UserProfileFilter отношений:
References<Filter>(x => x.Filter)
.Column("FilterID")
.LazyLoad()
.Cascade.SaveUpdate();
Спасибо! Энди
Try вынимая .Cascade.SaveUpdate() в отношении ребенка обратно в фильтр и посмотреть, что делает. Это может помочь вам решить ваши проблемы, если вы упростите свои отношения. Если вы посмотрите на SQL, он пытается сначала удалить родительский (Фильтр)? –