У меня проблема с NHibernate, когда я пытаюсь сохранить сущность, у которой есть коллекция других сущностей.
Пример, Order и OrderLine. OrderLine связан с заказом с сумкой. Его каскад установлен на Delete-Orphan, и когда я вызываю SaveOrUpdate для ордера, я вызываю SaveOrUpdate для его OrderLines.
Исключение возникает в SaveOrUpdate ордена, но только если коллекция моего OrderLine не равна нулю.
Перед тем как установить каскад "delete-orphan", у меня было "all-delete-orphan", и я подумал, что могу использовать SaveOrUpdate OrderLine для NHibernate. Проблема состоит в том, что каждая OrderLine имеет номер, который должен быть уникальным. Если я удаляю OrderLine с Number = 2 и добавляю новую OrderLine с Number = 2, при попытке повторного сохранения будет возникать исключение, потому что NHibernate вставляет и обновляет новые реестры перед удалением старых сирот.
Из-за этого я подумал, что при сохранении моего объекта Order (у которого NumberLine, OrderLine был удален из коллекции) будет удалена эта OrderLine, а затем вызов SaveOrUpdate для текущих OrderLines сохранит их правильно без нарушений уникального ключа.
Оказывается, это не так, потому что я получаю исключение при сохранении самого заказа.
Любая помощь будет принята с благодарностью.
Спасибо