1

我首先使用 Ef 4 代码,并且有一个带孩子的父表

当我更新父项时,我注意到子项没有更新,而是创建了新条目(旧条目没有被删除)。

我的更新方法如下所示:

IEFRepository<Parent> repo = new EFRepository<Parent>( context );
var parent = repo.GetSingle(m => m.parentId.Equals(updatedParent.parentId));

parent.Child = updatedParent.Child;  //this is creating a new record in the db, not overwriting the existing

repo.Update(parent);

如果我像下面那样在更新方法中分解子属性,它可以解决重复条目问题,但会在其他地方产生其他问题(主要是验证空条目)。

parent.Child.property = updatedParent.Child.property;

我还尝试创建一个 UpdateChild(),并从 UpdateParent() 调用它,但得到的结果与分解单个子属性基本相同

是否有适当的方法来控制这种行为并强制 EF 覆盖子实体而不是创建新实体?

4

1 回答 1

0

在上下文中拥有一个孩子列表,并在您不再需要时从您的上下文中删除旧孩子。

于 2012-05-18T21:10:17.740 回答