失败的级联删除会从本地缓存中分离实体

时间:2014-01-31 22:23:48

标签: entity-framework breeze cascade cascading-deletes

当用户在不知不觉中尝试删除具有子节点的实体时,它会失败,因为breeze当前不支持级联删除,这是预期的。

但此操作的副作用是它将实体与本地缓存分离。因此,从用户界面看,这些实体已被删除。

  1. 这是预期的行为吗?

  2. 是否有直接的方法来检查实体是否有子节点(例如hasChildren())并阻止用户在客户端进入此状态?

1 个答案:

答案 0 :(得分:0)

  1. 这是预期的行为吗?

    • 是的。删除行时。从逻辑上讲,它应该从用户的角度消失,即使它在保存期间可能会失败。通过savechanges fail方法处理任何故障都可以避免。
  2. 是否有直接的方法来检查实体是否有子节点(例如hasChildren())并阻止用户在客户端进入此状态?

  3. 是的,有...... 假设你有一个父母“顾客”,它是孩子的​​“订单” 你的代码可能是这样的:

    if (customer.orders()) return 'Your message';
    else
    return customer().entityAspect.setDeleted();
    

    但是,我同意PW Kad ..我会选择数据库并坐下来。

    如果您使用的是SQL Server,则可能需要从那里设置删除级联规则。

    为了客户订单,展开“订单”表;你会在“键”下找到FK约束。右键单击然后单击修改。将显示一个对话框;展开“插入和更新规范”将“删除规则”更改为“级联”您也可以设置更新规则..