我首先使用 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 覆盖子实体而不是创建新实体?