0

我想从我的数据库中删除一个条目,但它说它不能,因为另一个表已经引用了它的 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 数据库图。

谢谢

4

1 回答 1

1

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

于 2012-06-26T08:15:17.827 回答