EF中报错:附加类型“xxxx”的实体失败,因为相同类型的其他实体已具有相同的主键值。

报错全文:

附加类型“Model.DepartProduct”的实体失败,因为相同类型的其他实体已具有相同的主键值。在使用 "Attach" 方法或者将实体的状态设置为 "Unchanged" 或 "Modified" 时如果图形中的任何实体具有冲突键值,则可能会发生上述行为。这可能是因为某些实体是新的并且尚未接收数据库生成的键值。在此情况下,使用 "Add" 方法或者 "Added" 实体状态跟踪该图形,然后将非新实体的状态相应设置为 "Unchanged" 或 "Modified"。


报错原因用通俗的话来讲就是:

在上下文中,查询过这个实体,再这样放一个new的ID一样的新实体进去更新或者删除,就会有2个相同ID的对象,然后就报异常了。


没想到什么好的办法,目前的解决方案是不再放一个New的ID一样的实体,而是通过在原先查询出来的实体找出需要进行 删除或者 更新 的数据进行操作。

你可能感兴趣的:(Entity,Framework学习)