У меня есть два объекта, родитель и ребенок. Я сохранил объект Parent parent1. Я хотел бы создать новый дочерний объект, установить его родительский атрибут в «parent1» и добавить его в коллекцию Childs на parent1.NHibernate не сохраняются детские объекты
Родитель
public class Parent: IEquatable<Parent>
{
public virtual IList<Child> Childs{ get; set; }
...
}
Детский
public class Child: IEquatable<Child>
{
public virtual Parent Parent { get; set; }
...
}
Parent.hbm.xml
<bag name="Childs" lazy="false" inverse="true" cascade="all">
<key column="Id" />
<one-to-many class="Child" />
</bag>
Child.hbm.xml
<many-to-one name="Parent">
<column name="Parent" sql-type="int" not-null="true" />
</many-to-one>
работает этот код
var child = new Child();
child.Condition = value;
Parent parent= m_parentmanager.Get(2); // "parent1"
parent.Childs.Add(child);
child.Parent = parent;
m_childsmanager.Save(child);
Когда я снова называть "Родитель родитель = m_parentmanager.Get (2)" несколько строк ниже, я могу видеть в режиме отладки эта коллекция Childs пуста. У меня есть кнопка, чтобы добавить Child to Parent (к коллекции Childs) в моем представлении. Когда я нажимаю кнопку в первый раз, этот код запускается, но коллекция Childs пуста. Когда я нажимаю кнопку второй раз, дочерний объект добавляется в коллекции Childs. Все остальные нажатия кнопок также не добавляют никакого нового дочернего объекта в коллекцию.
Может ли кто-нибудь сказать мне, что я делаю неправильно?
Это работает! Большое спасибо !!! :) –
Не могли бы вы помочь мне с другой проблемой с картографированием? Вы выглядите так, как будто знаете, что вы делаете ... [link] (http://stackoverflow.com/questions/40708309/nhibernate-mapping-class-with-attribute-of-same-type) –