У меня есть следующий код:
var rootFolder = new KnowledgeFolder { Archived = true, Name = path.First()};
this._folderRepository.Save(rootFolder); // this goes to the db
А потом: (здесь неактуальный код)
var child = new KnowledgeFolder { Name = entry, Archived = true };
rootFolder.Children.Add(child);
//////////
this._folderRepository.FlushSession();
rootFolder правильно сохранен в БД, но другие элементы, которые я позже добавлю в Children, не будут сохранены. Зачем? Я знаю, что если корневая папка была ранее загружена из базы данных, это будет работать. Почему NHibernate не достаточно умен, чтобы проверить граф объектов?
// редактировать
Отображение выполняется с использованием свободно API, как это:
mapping.HasManyBidirectional<KnowledgeFolder, KnowledgeFolder>(g => g.Children, p => p.Parent);