无法跟踪实体类型“***”的实例,因为已经在跟踪另一个与{“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”}具有相同键值的实例。附加现有实体时,请确保仅附加一个具有给定键值的实体实例。考虑使用“***”查看冲突的键值。
然而看这个翻译简单来说是键值冲突
首先我是把数据根据ID查出来的,然后需要修改一个字段值,最后保存。
这个操作我在controllers 做的,还用了Map映射。目前为止我怀疑是映射的问题。
在查出来ID时我将数据库的Model映射为他对应的ViewModel 这时候映射了一次,得到的是View 的数据。接着我修改完字段,需要保存修改需要将ViewModel 映射 为 Model,这时候就发生了他说的
已经在跟踪另一个与{“ID”}具有相同键值的实例 的问题。
解决方法:
不用映射,直接用数据上下文查,直接改,没发生任何问题。NICE
本文原创,转载请注明出处。
附言:
愿这世上没有bug