
[英]Error : An object with the same key already exists in the ObjectStateManager. The ObjectStateManager cannot track multiple objects with the same key
[英]Error: An object with the same key already exists in the ObjectStateManager. The ObjectStateManager cannot track multiple objects with the same key
我是EF的初学者,正在开发其他代码。 通用存储库类具有以下更新方法
public void Update(TEntity entity)
{
if (entity.EntityState == EntityState.Detached)
{
objectSet.Attach(entity);
}
objectContext.ObjectStateManager.ChangeObjectState(entity, EntityState.Modified);
}
public void CommitApplicationEntities()
{
objectContext.SaveChanges();
}
这个方法叫做
public void UpdateSearchLog(SearchLog toUpdate)
{
searchLogRepository.Update(toUpdate);
searchLogRepository.CommitApplicationEntities();
}
修改SearchLog后,我调用searchLogRepository.Update(toUpdate),但收到此错误
“ ObjectStateManager中已经存在具有相同键的对象。ObjectStateManager无法跟踪具有相同键的多个对象。”
通过进行一些搜索,我知道该错误是由于以下事实造成的:我先查询现有数据,然后附加修改后的实体,但是我们如何更新此更新方法,以使其不会因其他调用而中断在代码中?
谢谢
您可以尝试两种方法:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.