[英]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.