EF實體在編輯時常見的出錯問題(轉)


存儲區更新、插入或刪除語句影響到了意外的行數(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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM