我正在使用實體框架4(使用自我跟蹤實體)並訪問視圖,即合併兩個表。因此,當我更新視圖的信息時,我將視圖的STE發送到訪問數據庫的存儲庫。將視圖轉換爲表並保存更改讓我感到樂觀併發異常
我也做了以下內容:
當我收到我的看法與更新的信息,創建我STE1和STE2。當我創建一個STE時,如何創建一個添加狀態。所以我怎麼知道STE的狀態被修改,我用方法MarkedAsModified
來改變我的兩個STE的狀態。
然後,我如何在視圖的STE視圖中獲得兩個表的信息,我將視圖中的信息傳遞給正確的STE,並將STE的更改應用到objectContext
。
最後我做了saveChanges
。但在這一步我收到Optimistic concurrency exception
。我認爲這是因爲STE從狀態傳遞到Added
到Modified
,因此上下文檢測到創建和SaveChanges
之間存在一些修改,但我也嘗試在STE中嘗試AcceptChanges
,稍後將其標記爲已修改,並應用更改最後SaveChanges
,但問題仍然存在。
我該如何解決問題?有更好的方式來處理view和Entity Framework v4?
謝謝。 Daimroc。
編輯1:我仍然有問題。我的代碼如下:
組件myComponent = new Components(); //這是一個STE myComponent.Rereference = myView.Reference; ... //其他屬性 myComponent.MarkedAsModified(); //這是需要的,因爲我想更新信息,不需要添加新的寄存器。 myContext.ApplyChanges(「Components」,myComponent); miContexto.SaveChanges();
在saveChanges中,我收到異常:更新,插入或刪除語句影響了意外數量的行(0)。自實體加載後,實體可能已被修改或刪除。刷新ObjectStateManager條目。
這是問題所在?我可以不修改創建的新STE嗎?
謝謝。
你能否提供代碼塊,以便我們看到你在做什麼? –