【发布时间】:2016-12-06 19:42:28
【问题描述】:
我正在使用
从 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,就像在新记录中一样;但它没有帮助。有什么想法吗?
【问题讨论】:
-
这听起来像是他们在某个地方的重复 PK。您是否尝试过在您的数据库中按 1726526 键执行 where 子句?
-
是的;数据库中现有的最高密钥是 101626
-
我认为由于子对象而出现错误,您应该尝试为每个子对象设置一个新键。
-
@hazimdikenli 让它成为答案,我会批准它
标签: c# entity-framework