删除实体时,Breeze SaveChanges始终抛出DbUpdateConcurrencyException

Elf*_*one 5 c# entity-framework breeze

我刚刚启用了"并发模式"属性来修复我的一个实体.

当我尝试更新时,一切都很好.

但是当我尝试删除实体时,我总是得到这个错误:

DBUpdateConcurrencyException

存储更新,插入或删除语句会影响意外的行数(0).自实体加载后,实体可能已被修改或删除.刷新ObjectStateManager条目.

有没有办法为删除操作禁用DBUpdateConcurrencyException?如果没有,我该如何管理这种类型的例外?

[HttpPost]
public SaveResult SaveChanges(JObject saveBundle)
{

    try
    {
        return _breezeComponent.SaveChanges(saveBundle);
    }
    catch (DbUpdateConcurrencyException ex)
    {               
        //Workaround needed
    }

}
Run Code Online (Sandbox Code Playgroud)

顺便说一句,我已经看过这些解决方案:如何在删除实体时忽略DbUpdateConcurrencyException.有什么办法可以将这个代码与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": {}
}
Run Code Online (Sandbox Code Playgroud)

Elf*_*one 1

我们的应用程序框架中隐藏着一个机制,它会在将更改保存到数据库之前更新属性。所以这不是微风的问题。

现在,解决方案中已添加一个过滤器,以便在删除时排除此模式。