我是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无法用相同的键跟踪多个对象。”
通过进行一些搜索,我知道错误是由于我首先查询现有数据,然后附加修改的实体,但是我们如何才能更新这个更新方法,使其不会中断代码中的任何其他调用?
谢谢
发布于 2014-01-05 21:00:35
您可以尝试以下两种方法:
https://stackoverflow.com/questions/20928582
复制相似问题