而不是进入代码,我有一个简单的问题。简单一对多的默认行为是插入子记录,然后使用父键更新外键列。nHibernate一对多插入,但不更新
有没有人曾经有过一对多的子对象被插入但未更新导致我的表中有一行在外键列中为空?
我想要标准的一对多的默认行为。我不想将父母作为属性添加到孩子。
谢谢。
而不是进入代码,我有一个简单的问题。简单一对多的默认行为是插入子记录,然后使用父键更新外键列。nHibernate一对多插入,但不更新
有没有人曾经有过一对多的子对象被插入但未更新导致我的表中有一行在外键列中为空?
我想要标准的一对多的默认行为。我不想将父母作为属性添加到孩子。
谢谢。
如果级联=“保存更新”你的设置/袋
,或者如果您设置会话的FlushMode为“无”或“提交” 和挽救了孩子使用没有这会发生您的childRepository并忽略使用其存储库保存包含集合的对象。
我想你必须在子项中设置父引用。
class Parent {
public virtual IList<Child> Children;
}
class Child {
public virtual Parent Parent;
}
Parent p = new Parent();
Child c = new Child();
c.Parent = p;
p.Children = new List<Child>();
p.Children.Add(c);
现在,当你保存这个临时对象p
你将不得不在子表中的右外键。
reach4thelasers,对不起,应该提到。我的包有Cascade =“全部删除孤儿”。 – TedTrippin 2009-11-14 01:06:36