我从EF6获得
的记录Context
.MyRepo
.Include(p => p.MyRelation)
.AsNoTracking()
.SingleOrDefault(p => p.Uuid == recordUuid);
然后我尝试插入记录zith的副本
myRecord.Uuid = Guid.NewGuid();
myRecord.EntityKey = new System.Data.EntityKey("modelqualifiedname", "Id", 1726526);
Context.MyRepo.AddObject(myRecord);
Context.SaveChanges();
但是这条消息失败了
“ObjectStateManager中已存在具有相同键的对象。 ObjectStateManager无法跟踪具有相同对象的多个对象 键“。
我尝试将EntityKey
设置为null
,就像它在新记录中一样;但它没有帮助。有什么想法吗?
答案 0 :(得分:2)
此对象已由EF跟踪。
您必须修改其密钥或将其状态更改为“修改”。
Context.MyRepo.Entry(myRecord).State = EntityState.Modified;
然后保存。
答案 1 :(得分:0)
我认为你因为子对象而得到错误,你应该尝试为每个子对象设置一个新的密钥。