2012-06-25 111 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,它將無法工作。如果你真的需要的話,你將不得不使用數據庫觸發器。