【问题标题】:cascade delete on nullable foreign key可空外键上的级联删除
【发布时间】:2019-05-22 04:34:59
【问题描述】:

我正在使用 Entity Framework 6。我在可以为空的外键上设置了级联删除。显然级联删除似乎不起作用。它只是将外键设置为 null 而不是级联删除。为什么会这样?我该如何解决这个问题?

【问题讨论】:

  • 分享您的代码。级联删除是处理删除相关实体的默认机制。看到这个EF cascade delete
  • 我意识到这一点。除了外键可以为空的情况之外,级联删除在其他情况下也适用于我。
  • @Riz ASP.NET MVC 是一个 Web 框架,而不是一个数据访问库。它与加载或删除数据无关。
  • @Riz 发布您的代码,包括表模式(尤其是 FK 创建语句)和上下文配置。您要求人们猜测您使用的设置。 SET TO NULL 需要显式配置,这不是偶然发生的事情。 默认是在有子记录时拒绝删除父记录

标签: c# .net sql-server


【解决方案1】:

删除时的级联会在数据库中删除父记录时自动删除相关记录或将 ForeignKey 列设置为 null。因此,如果您想要解决问题的方法,请尝试以下操作:

context.RelatedTables.RemoveRange(context.RelatedTables.Where(c => c.FKId == id));

【讨论】:

    猜你喜欢
    • 2015-06-15
    • 2014-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-30
    • 2012-09-21
    • 2011-02-24
    • 2018-04-13
    相关资源
    最近更新 更多