Каскадные коллекции с использованием NHibernate StatelessSession - PullRequest
7 голосов
/ 25 ноября 2010

Как правильно массово вставить объекты, содержащие коллекции других объектов (отображение 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 Ответ

6 голосов
/ 25 ноября 2010

Вам необходимо либо создать свойство Parent в дочернем классе, либо использовать сеанс с состоянием.

...