附加“EntityType”类型的实体失败,因为同一类型的另一个实体已具有相同的主键值

时间:2015-01-20 10:58:42

标签: c# asp.net-mvc entity-framework

我最近从EntityFramework 4.3.1(Self Tracking)更新到EntityFramework 6.1.2(没有Detect Changes)。由于MVC客户端具有复杂的实体树视图,以及一些其他技术选择(如使用SQL Server的{​​{1}}),我在分离模式下在数据库前工作。每个请求都有一个RowVersion的新实例,我为每个实体标记了上下文的状态。

它运作得很好。 Insert正在处理完整的实体树。更新正在处理正在处理的类型。在DbContext 4上,我必须使所有导航属性都为空以使该流程正常工作。现在我似乎不必这样做。

但是,我确实在以下场景中得到了上述异常:

  
      
  1. 我有一个父实体节点,例如 Person ,已被修改;
  2.   
  3. 它包含多个相同类型的子实体节点,例如 Phones ,它们是新条目,因此它们的标识值相同(0表示新的);
  4.   

Person 的条目的状态设置为modified会导致异常,但我希望EntityFramework不会尝试处理新的(添加的)子实体的状态。我可以看到,当我在修改后的 Person 下只有一部新手机时, Phone 条目的状态从分离到未更改。

我是否需要做一些事情EntityFramework知道只处理父实体而没有修改的导航属性?或者我必须像以前一样解决所有导航问题?

0 个答案:

没有答案