我想从我的数据库中删除一个条目,但它说它不能,因为另一个表引用了它的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数据库图表。
由于
答案 0 :(得分:1)
级联删除是在数据库中的引用约束处理的,因此您只需要将On Delete
规则设置为Cascade
。问题是级联只能从主体到依赖实体发生。因此,如果您希望从PackageVariant
删除(甚至是级联删除)将删除Packages
或Variants
,则无法删除。如果确实需要,您将不得不使用数据库触发器。