2012-06-25 50 views
0

我想从我的数据库中删除一个条目,但它说它不能,因为另一个表引用了它的ID。我delete一个从该表:使用实体框架通过MSSQL数据库级联删除

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数据库图。

感谢

回答

1

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