Свободный nhibernate один ко многим родительский удалить

У нас есть 2 класса, родитель и ребенок

Родитель не имеет ссылки на ребенка, ребенок имеет следующее, определенное в его беглом отображении:

References(x => x.Parent, "Parent_id").Not.Nullable();

Когда родительская запись удаляется, генерируется следующая ошибка:

The DELETE statement conflicted with the REFERENCE constraint "FKFF68C21EE06905B9". The conflict occurred in database "DatabaseName", table "dbo.tblChild", column 'Parent_id'.
The statement has been terminated.

Какое будет правильное сопоставление, чтобы разрешить удаление родителя, учитывая, что у родительской модели нет коллекции свойств типа child?

1 ответ

Вы не можете удалить родительские записи, на которые ссылаются дочерние записи из-за ограничения внешнего ключа. Если вы не хотите отображать дочерние элементы в качестве ссылки на коллекцию, вам придется удалить ссылку на родительскую запись во всех дочерних записях перед удалением родительской записи. Вы можете сделать это, установив для ссылки на родителя значение NULL (удаляя ограничение не NULL) или удалив дочернюю запись.

Все остальные решения включают в свою родительскую запись инверсную дочернюю коллекцию с каскадным отображением.

Другие вопросы по тегам