何时在EF中使用WillCascadeOnDelete(false)?

时间:2019-09-03 09:59:13

标签: c# sql-server entity-framework sql-server-2008 ef-code-first

我知道Cascade Delete in Entity Framework的用法和作用,并且通常在我的项目中默认不使用。但是,我不确定删除父记录后删除所有子记录是否是良好行为。删除父记录后,是否需要保留子记录。 WillCascadeOnDelete(false)是否仅用于保护子记录以免被误删除?还是有些其他情况需要使用WillCascadeOnDelete(false)

1 个答案:

答案 0 :(得分:3)

答案是:“这取决于您的业务”

例如,您有两个表:具有一对多关系的类别和产品

  • 如果使用的是WillCascadeOnDelete(true),则意味着没有类别就不可能存在您的产品。

  • 否则,这意味着您的产品不受类别的影响。

有关更多详细信息,您可以尝试在https://stackoverflow.com/a/31600062/7338888上详细了解“聚合”,“构成”和“关联”之间的区别。     希望这对您有帮助。