Мой боб выглядит так:
public class A {
...
[HasMany (MapType = typeof(B), Table = "B_table", ColumnKey = "A_object_id",
Fetch = FetchEnum.Join,
RelationType = RelationType.List, Index = "id",
Cascade = ManyRelationCascadeEnum.AllDeleteOrphan)]
IList<B> BList { get; set; }
...
}
и при выполнении Save на этом бине я ожидаю, что бины типа B будут автоматически
сохранены (и удалены при обновлении) тоже. NHibernate, конечно, пытается это, но это так
с B_table.A_object_id, установленным сначала в NULL, а затем NHibernate обновляет B_table, устанавливая правильное значение B_table.A_object_id (то есть: A.ID).
Это не то, что я хочу, так как у меня есть ограничение NOT NULL в базе данных.
Мой вопрос: как заставить NHibernate автоматически сохранять дочерние объекты с правильным идентификатором, установленным с самого начала? Я знаю, что могу создать компонент A, сохранить его, получить новый идентификатор, создать компоненты B, установить их A_object_id и затем сохранить компоненты B ... но это обходной путь.