我剛剛啓用了「併發模式」屬性來修復我的一個實體。Breeze SaveChanges在刪除實體時總是拋出DbUpdateConcurrencyException
當我嘗試更新時,一切正常。
但是,當我嘗試刪除實體,我總是得到這樣的錯誤:
DBUpdateConcurrencyException
商店更新,插入或刪除語句影響了意外 的行數(0) 。自從裝載了實體 以來,實體可能已被修改或刪除。刷新ObjectStateManager條目。
是否有任何方法來禁用DBUpdateConcurrencyException刪除操作?如果不是,我如何管理這種類型的異常?
[HttpPost]
public SaveResult SaveChanges(JObject saveBundle)
{
try
{
return _breezeComponent.SaveChanges(saveBundle);
}
catch (DbUpdateConcurrencyException ex)
{
//Workaround needed
}
}
順便說一句,我已經看過這些類型的解決方案:How to ignore a DbUpdateConcurrencyException when deleting an entity。有什麼方法可以將此代碼與Breeze引擎集成?
編輯: 我已經從版本1.4.5升級到1.4.7,我仍然有同樣的問題。
如果我看一下JSON對象,將entityState從「Deleted」更改爲「Detached」會是一個解決方案嗎? Breeze中有任何設置可以幫助我做到這一點嗎?
{
"entities": [
{
"EventId": 11111,
"EventName": "Jon Doe",
"EventCity": "Montreal",
"EventDate": "2014-01-24T00:00:00Z",
"TermDate": "2014-01-08T00:00:00Z",
"Insertedby": "Terry",
"InsertDate": "2014-01-06T14:31:14.197Z",
"Updatedby": "Terry",
"UpdateDate": "2014-01-07T15:50:53.037Z",
"entityAspect": {
"entityTypeName": "Event:#Cds.Corpo.GuestList.Models",
"defaultResourceName": "Events",
"entityState": "Deleted",
"originalValuesMap": {},
"autoGeneratedKey": {
"propertyName": "EventId",
"autoGeneratedKeyType": "Identity"
}
}
}
],
"saveOptions": {}
}
好猜,但我沒有級聯刪除,也沒有在我的數據庫中級聯更新。 – Elferone
你正在運行什麼版本的Breeze? –
我目前在版本1.4.5。也許升級到1.4.7會解決問題? – Elferone