Есть ли способ удалить все посторонние объекты при удалении записи с помощью NHibernate? - PullRequest
0 голосов
/ 17 сентября 2010

Я недавно начал использовать Fluent Nhibernate для своего уровня данных и столкнулся с проблемой.Всякий раз, когда я хочу удалить запись, которая имеет несколько ограничений внешнего ключа, я должен создать другой класс, просто чтобы представить эту сущность базы данных.Это означает, что для чего-то вроде пользовательской записи, которая связана со многими другими таблицами, мне нужно создать что-то вроде 10 различных классов, которые я никогда не буду использовать для каких-либо других целей.По крайней мере, это мое понимание того, как все работает.

Есть ли способ удалить все эти записи без необходимости их сопоставления.Например, используя пример пользователя, пользователь может иметь несколько ролей, отделов, адресов электронной почты, телефонных номеров, адресов и т. Д.Я хотел бы удалить все эти записи, но не обязан отображать их все в классах Nhibernate.

Есть ли свойство, которое я могу установить в моем UserMapping, которое бы достигло этого?!

1 Ответ

1 голос
/ 17 сентября 2010

Если эти объекты не отображаются, NHibernate не может знать о них.Но вы можете выбрать один из следующих вариантов:

  • Настройка каскадов FK на уровне базы данных (если ваша база данных поддерживает это)
  • Использовать триггер базы данных длязакодируйте вручную каскад (если ваша база данных поддерживает триггеры)
  • Используйте IPostDeleteEventListener (аналогично триггеру базы данных, но на уровне NHibernate), чтобы вручную закодировать каскад.
...