我有一个简单的问题,而不是进入代码。简单的一对多的默认行为是它插入子记录然后用父键更新外键列。
有没有人曾经有一对多的子对象被插入但未更新导致我的表中的一行在外键列中为空?
我想要标准的一对多的默认行为。我不想将父母作为属性添加到孩子身上。
感谢。
答案 0 :(得分:0)
如果你的套装/包
上没有cascade =“save-update”,就会发生这种情况或者如果您将会话的FlushMode设置为'None'或'Commit' 并使用childRepository保存子进程,并忽略使用其存储库保存包含该集合的对象。
答案 1 :(得分:0)
我认为你必须在子项中设置父引用。
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
时,您将在子表中拥有正确的外键。