代码之家  ›  专栏  ›  技术社区  ›  Muad'Dib

Entityframework 4:从父集合中删除子实体时ForeignKey出现问题

  •  2
  • Muad'Dib  · 技术社区  · 14 年前

    EF的新成员,我有个问题。

    但是,当我打电话的时候 <entity>.myRelatedChildTable.Remove( childEntity ) 然后打电话给 _context.SaveChanges( ) ,我得到一个关于ForeignKey约束的例外。现在,如果我打电话给 _context.DeleteObject() _context.SaveChanges() 我们没有问题。但是,现在我们也没有子实体了——它被从数据库中删除了。

    一个或多个外键属性不可为null。当需要改变时 对于关系,相关外键属性设置为null 必须定义,则必须为外键属性分配另一个非空值

    有人有什么想法/建议我如何解决这个问题吗?

    1 回复  |  直到 14 年前
        1
  •  1
  •   stimms    14 年前

    听起来你基本上是想把EF和数据库解耦。不幸的是,“保存更改”会将更改推回到数据库中,这显然是您不希望看到的。您不能调用SaveChanges并继续使用集合。EF将为您的删除负责,不会返回该信息。最后你可以放弃你的改变继续前进。

    如果确实要删除项而不删除子项,则不能在当前架构中删除。您必须在数据库中允许空值。