Каскадные коллекции с использованием NHibernate StatelessSession
Как правильно массово вставлять сущности, которые содержат коллекции других сущностей (HasMany
отображение), используя сеансы без сохранения состояния?
Например, родительский класс отображается так:
class ParentMap : ClassMap<Parent>
{
public ParentMap()
{
Id(x => x.Id)
.GeneratedBy.Increment();
HasMany(x => x.ChildNodes)
.KeyColumns.Add("Parent_id")
.Cascade.All();
}
}
Сеанс без сохранения состояния игнорирует параметр Cascade, поэтому дочерние узлы не сохраняются автоматически. Я мог бы перебирать коллекцию сам, но тогда я не могу установить отношение, потому что Parent_id
Столбец не существует как свойство, к которому я мог бы написать.
Я что-то пропустил?
1 ответ
Решение
Вы должны либо создать Parent
свойство в дочернем классе, или используйте сеанс с состоянием.