【发布时间】:2012-03-06 03:08:21
【问题描述】:
我有以下代码来模拟主人将他的狗卖给别人并且狗得到一个新名字:
public void ChangeOwner(int oldOwnerID, int newOwnerID, int dogID, string newDogName)
{
var oldOwner = _objectContext.People.FirstOrDefault(x => x.ID == oldOwnerID);
oldOwner.DogID = null;
var newOwner = _objectContext.People.FirstOrDefault(x => x.ID == newOwnerID);
newOwner.DogID = dogID;
var dog = _objectContext.Dogs.FirstOrDefault(x => x.ID == dogID);
dog.Name = newDogName;
_objectContext.SaveChanges();
}
这段代码会抛出以下错误:
附加信息:对数据库的更改已成功提交,但在更新对象上下文时出错。 ObjectContext 可能处于不一致的状态。内部异常消息:AcceptChanges 无法继续,因为对象的键值与 ObjectStateManager 中的另一个对象冲突。在调用 AcceptChanges 之前确保键值是唯一的。
为什么会出现这个错误,我可以做些什么来解决它?
【问题讨论】:
标签: c# asp.net entity-framework