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 . . .)

そして、それは私がカスケードを行きたい限りです。

これで、Entity Frameworkモデルがセットアップされて正しく機能し、データベースがセットアップされて正しく機能するようになりました。では、このカスケード削除が機能するように、両方またはいずれかを変更するにはどうすればよいですか?

PackageVariantProductデータベース図も作成しました。

ありがとう

4

1 に答える 1

1

On Deleteカスケード削除はデータベースの参照制約で処理されるため、ルールをに設定する必要がありますCascade。問題は、カスケードがプリンシパルから依存エンティティにのみ発生する可能性があることです。したがって、からの削除(カスケード削除でも)がまたはのPackageVariantいずれかを削除Packagesすると予想される場合Variantsは、機能しません。本当に必要な場合は、そのためにデータベーストリガーを使用する必要があります。

于 2012-06-26T08:15:17.827 に答える