存儲區更新、插入或刪除語句影響到了意外的行數(0)。實體在加載后可能被修改或刪除。刷新 ObjectStateManager 項。
說明: 執行當前 Web 請求期間,出現未經處理的異常。請檢查堆棧跟蹤信息,以了解有關該錯誤以及代碼中導致錯誤的出處的詳細信息。
異常詳細信息: System.Data.OptimisticConcurrencyException: 存儲區更新、插入或刪除語句影響到了意外的行數(0)。實體在加載后可能被修
改或刪除。刷新 ObjectStateManager 項。
ObjectStateManager 中已存在具有同一鍵的對象。ObjectStateManager 無法跟蹤具有相同鍵的多個對象。
說明: 執行當前 Web 請求期間,出現未經處理的異常。請檢查堆棧跟蹤信息,以了解有關該錯誤以及代碼中導致錯誤的出處的詳細信息。
異常詳細信息: System.InvalidOperationException: ObjectStateManager 中已存在具有同一鍵的對象。ObjectStateManager 無法跟蹤具有相同
鍵的多個對象。
以上兩個錯誤的原因解決如下:
由於我路由的是 {controller}/{action}/{id} ID來表示,而產品編輯的時候的ID,我是ProductGuid
另外在做編輯的時候,添加和編輯我一起做的,所以需要使用兩個上下文定義
DataBaseEntities db = new DataBaseEntities();
public void Save(Guid? id, ref Miller_Product item)
{
DataBaseEntities db = new DataBaseEntities();
if (id == null)
{
db.Product.Attach(item);
db.ObjectStateManager.ChangeObjectState(item, EntityState.Added);
}
else
{
db.Product.Attach(item);
db.ObjectStateManager.ChangeObjectState(item, EntityState.Modified);
}
db.SaveChanges();
}
嗯,基本就是這兩個問題引起的錯誤,其他的暫時我沒有遇到。
http://www.rczjp.cn/ArticleShow.aspx?ID=572
