C# 什么';更新EF中父/子实体的正确方法是什么?
我首先使用EF4代码,有一个父表和一个子表 当我更新父项时,我注意到子项没有更新,而是创建了新条目(旧条目不会被删除) 我的更新方法如下所示:C# 什么';更新EF中父/子实体的正确方法是什么?,c#,entity-framework,C#,Entity Framework,我首先使用EF4代码,有一个父表和一个子表 当我更新父项时,我注意到子项没有更新,而是创建了新条目(旧条目不会被删除) 我的更新方法如下所示: IEFRepository<Parent> repo = new EFRepository<Parent>( context ); var parent = repo.GetSingle(m => m.parentId.Equals(updatedParent.parentId)); parent.Child = upda
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);
我还尝试创建一个UpdateChild(),并从UpdateParent()调用它,但得到的结果与分解单个子属性基本相同
有没有合适的方法来控制这种行为并强制EF覆盖子实体而不是创建一个新实体?有一个上下文中的子实体列表,当您不再需要它时,有一个上下文中的旧子实体列表。您能详细说明您正试图进行的更改吗?从这个描述很难理解,至少对我来说是这样。:)
parent.Child.property = updatedParent.Child.property;