Я работаю над проектом с NHibernate, что классы, подобные следующим:Nhibernate - как удалить детей?
public class Parent {
public IList Children {get;set;}
// ...
}
public class Child {
// ...
}
У меня есть свойство детей установить каскад все/удалить сирота. Поскольку я использую совокупный шаблон, и экземпляры класса Child будут упоминаться только в контексте родителя, у меня нет ChildRepository, чтобы удалить детей напрямую - только ParentRepository. Однако, когда я извлекаю объект Parent и вызываю Parent.Children.Clear(), дети из базы данных никогда не удаляются. Как я могу это достичь?
Проблема в том, что я использую шаблон репозитория и не имеют прямого доступа к объекту сеанса. Я обертываю все внутри экземпляра IUnitOfWork, который абстрагирует объект сеанса + транзакцию и вызывает Commit() на единице работы в конце, который стажер совершает транзакцию NHibernate. – Chris
Я думаю, мне просто нужно добавить метод Save в мои базовые классы репозитория. Видимо, несмотря на то, что я не нуждался в этом до сих пор, это довольно зияющая дыра в моей структуре. – Chris