更新父实体更改子实体集合

时间:2019-05-15 13:34:38

标签: c# wpf entity-framework-core

我在WPF应用程序中使用实体框架核心。

我有一个这样的模型:

Parent_Entity
      _ ID
      _ Child_Entity的集合
      _ Current_Child_Entity(未映射)

Current_Child_Entity是集合之一。例如:

子实体的集合
child1
child2

Current_Child_Entity
child2

当我尝试保存更改时,我会执行以下操作:

1)AddOrUpdate(Current_Child_Entity)
2)AddOrUpdate(Parent_Entity)

我使用的AddOrUpdate()方法是通过以下方式实现的:

Math.cos()

我的问题是,当我第一次更新(使用Current_Child_Entity)时,一切似乎都很好。

但是,当我进行第二次更新以保存父实体时,它在子实体集合中添加了两个具有相同ID,相同属性的Child_Entity的副本。例如,如果我在“子实体集合”中更新了child2,则会得到:
child1
child2
child2

当我在AddOrUpdate()中执行此操作时:

Context.Entry(entity).State = EntityState.Modified;

为什么在此指令中在集合中完成子实体的复制?

有些事情我不理解,你能解释一下我做错了什么吗?

谢谢您的帮助。

0 个答案:

没有答案