Я использую шаблон Репозиторий / Единица работы в проекте, использующем NHibernate. У меня есть несколько репозиториев, таких как Клиент и Учетная запись. Каждый репозиторий связан с одной и той же ISession (единицей работы) путем передачи одного и того же объекта ISession в конструктор каждого репозитория.
Затем я создаю группу клиентов и связанных с ними учетных записей и добавляю их в соответствующие репозитории. Теперь я хочу сохранить эти репозитории в базе данных. Однако для сохранения в NHibernate необходимо вызвать ISession.Save () и передать объект. Если бы вместо этого я использовал Entity Framework, а моя ISession была ObjectContext, я мог бы вызывать ObjectContext.SaveChanges () и содержимое всех моих репозиториев будет сохранено в базе данных.
Как я могу сделать это в NHibernate? Кажется странным, что я должен сохранять каждый объект отдельно, а не сессию IS в целом. Я также должен сохранить их в определенном порядке, поскольку у Клиента должна быть учетная запись (AccountID FK в таблице клиентов не может быть нулевым), поэтому я должен сначала сохранить учетную запись, а затем клиента.
Что я пропустил?