禁用CascadeDelete时,使用IDbCommandTreeInterceptor的SoftDelete模式不起作用

时间:2016-01-11 20:50:00

标签: c# entity-framework

我按照this示例启用了应用程序中的某些实体以使用SoftDelete模式。

但是,这在以下情况下不起作用(source code here):

  1. 禁用级联删除(请参阅this
  2. 将相关子记录加载到身份表(如this
  3. 在该示例中,显然触发UPDATE语句来设置(Status = 1)不应该导致任何问题。但是,看起来EF在触发实际的SQL语句之前正在进行某种FK检查。

    在不触发UPDATE

    的情况下抛出以下内容
      

    操作失败:无法更改关系,因为   一个或多个外键属性是不可为空的。当一个   改变了关系,相关的外键属性是   设置为空值。如果外键不支持空值,   必须定义新的关系,外键属性必须是   分配了另一个非空值,或者不相关的对象必须是   删除。

    有没有办法解决这个问题?

0 个答案:

没有答案