【问题标题】:Cascade Deletion through MSSQL Database using Entity Framework使用实体框架通过 MSSQL 数据库进行级联删除
【发布时间】:2012-06-25 19:31:45
【问题描述】:

我想从我的数据库中删除一个条目,但它说不能,因为另一个表引用了它的 ID。我要删除的表是:

Packages(packageID(PRIMARY), package_name, etc. . . .)

我想级联删除的表是

PackageVariant(packageID(FOREIGN), variantID(FOREIGN)) //those foreign keys combine to make PRIMARY composite key

在从 PackageVariant 中删除条目时,我想级联删除相关的变体:

Variant(variantID(PRIMARY), variant_name, etc . . .)

这就是我想要的级联。

现在我有一个实体框架模型设置并正常工作,我有数据库设置并正常工作。那么,我该如何更改两者或其中之一,以使这种级联删除起作用?

我还制作了 PackageVariantProduct 数据库图。

谢谢

【问题讨论】:

    标签: c# asp.net sql-server database entity-framework


    【解决方案1】:

    级联删除是根据数据库中的引用约束处理的,因此您只需将On Delete 规则设置为Cascade。问题是级联只能从主体到从属实体发生。因此,如果您希望从PackageVariant 中删除(甚至级联删除)将删除PackagesVariants,它将不起作用。如果你真的需要它,你将不得不为此使用数据库触发器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-20
      • 1970-01-01
      • 2019-01-10
      • 1970-01-01
      • 1970-01-01
      • 2018-04-14
      • 1970-01-01
      相关资源
      最近更新 更多