无法跟踪实体类型“***”的实例,因为已经在跟踪另一个与{“ID”}具有相同键值的实例。

一顿操作猛如虎,然后他给我来个这个

The instance of entity type '***' cannot be tracked because another instance with the same key value for {'ID'} is already being tracked. When attaching existing entities, ensure that only one entity instance with a given key value is attached. Consider using '***’ to see the conflicting key values.

ennnnnn MMP

这玩意百度翻译说 是 

无法跟踪实体类型“***”的实例,因为已经在跟踪另一个与{“ID”}具有相同键值的实例。附加现有实体时,请确保仅附加一个具有给定键值的实体实例。考虑使用“***”查看冲突的键值。

然而看这个翻译简单来说是键值冲突  what fuck????(语言不当之处请见谅,我只是想描绘一下我现在的心情)

首先我是把数据根据ID查出来的,然后需要修改一个字段值,最后保存。

这个操作我在controllers 做的,还用了Map映射。目前为止我怀疑是映射的问题。

  在查出来ID时我将数据库的Model映射为他对应的ViewModel 这时候映射了一次,得到的是View 的数据。接着我修改完字段,需要保存修改需要将ViewModel 映射 为 Model,这时候就发生了他说的

已经在跟踪另一个与{“ID”}具有相同键值的实例 的问题。

解决方法:

  不用映射,直接用数据上下文查,直接改,没发生任何问题。NICE

本文原创,转载请注明出处。

附言:

  愿这世上没有bug

Map

原文地址:https://www.cnblogs.com/hkzw/p/12378609.html