【问题标题】:Introducing FOREIGN KEY constraint xx on table yy may cause cycles or multiple cascade paths在表 yy 上引入 FOREIGN KEY 约束 xx 可能会导致循环或多个级联路径
【发布时间】:2011-11-03 02:31:17
【问题描述】:

我已阅读 this answer,但是,它已有 2 年多的历史了,我希望可能有专门针对实体框架的答案。

为了快速解释,我有一个可以引用自身的类型,我已经一遍又一遍的架构,我确信这是实现它的最佳方式......

它永远不会有自己作为参考,它总是一个新的,所以,这个错误不应该是一个问题。

话虽如此,我完全理解从技术上讲,在 SQL 中它可以引用自身,但是它永远不会(从代码中)。

禁用级联删除允许它工作,但是,我真的不想禁用它,因为它是一个复杂的程序,我利用链中“更高”的级联删除。

【问题讨论】:

    标签: sql-server entity-framework-4.1 ef-code-first


    【解决方案1】:

    如果 SQL 抱怨多个级联路径,那么您根本无法在数据库中使用级联删除来解决这种情况,但您可以使用解决方法 - 而不是使用内置的级联删除,使用 INSTEAD OF DELETE 触发器并编写自定义 SQL首先删除依赖记录,然后删除主体记录。在 EF 中尝试使用级联删除,因为在这种情况下数据库层应该对 EF 透明。

    【讨论】:

      猜你喜欢
      • 2011-05-08
      • 2013-10-22
      • 2020-12-20
      • 2021-05-30
      • 2019-01-18
      • 2014-06-20
      相关资源
      最近更新 更多