1

我没有进入代码,而是有一个简单的问题。简单一对多的默认行为是插入子记录,然后用父键更新外键列。

有没有人有过一对多的插入子对象但未更新的情况,导致我的表中有一行外键列为空?

我想要标准一对多的默认行为。我不想将父级作为属性添加到子级。

谢谢。

4

2 回答 2

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您将在子表中拥有正确的外键。

于 2009-11-15T08:39:49.560 回答
0

如果您的套装/包上没有 cascade="save-update" 会发生这种情况

或者,如果您将会话的 FlushMode 设置为“None”或“Commit”并使用您的 childRepository 保存了孩子,而忽略了使用其存储库保存包含集合的对象。

于 2009-11-14T00:22:23.527 回答