NHibernate删除和添加父类的子集合
我有以下问题 我有一个包含子对象集合的父类NHibernate删除和添加父类的子集合,nhibernate,parent-child,unique-index,Nhibernate,Parent Child,Unique Index,我有以下问题 我有一个包含子对象集合的父类 public class Parent{ int _id; IList<Child> _childs = new List<Child>(); public IList<Child> Childs {get;} } public class Child{ int _id; string _name; Parent _parent;
public class Parent{
int _id;
IList<Child> _childs = new List<Child>();
public IList<Child> Childs {get;}
}
public class Child{
int _id;
string _name;
Parent _parent;
protected Child(){}
public Child(Parent parent, string name){
_parent = parent;
_name = name;
}
}
出现异常的原因是NHibernate首先插入child4,然后删除child1。NHibernate为什么这样做?
有人能解释一下并帮我解决这个问题吗?SQL语句的顺序是NHibernate: SQL语句按以下顺序发出
- 所有实体插入,以相同的顺序插入相应的对象 已使用ISession.Save()保存
- 所有实体更新
- 所有收藏删除
- 所有集合元素的删除、更新和插入
- 所有集合插入
- 所有实体删除,以相同的顺序删除相应的对象 已使用ISession.Delete()删除
Child child = parent.GetChildByName("Child1");
child.DoSomething();
或者像这样:
parent.DoSomethingWithChild("Child1");
另外,我假设您的Child.Equals实现使用名称,并且在您的映射中有
,而不是
。这可能只是一个打字错误
Child child = parent.GetChildByName("Child1");
child.DoSomething();
parent.DoSomethingWithChild("Child1");