カスケード削除を使用する多数の外部キー関係を持つSQLデータベースに多数のテーブルがあります。既存の関係にカスケード削除が必要であると判断しました。これを有効にしようとすると、有用なメッセージ与えます:新しいカスケード削除の追加を禁止するCASCADE DELETEパスを決定する
Unable to create relationship Introducing FOREIGN KEY constraint on table may cause cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints. Could not create constraint. See previous errors.
しかし、それは循環関係の作成を引き起こすテーブルのセットを介して他のパスを言及していないが、それは単純に言って、問題をかわし:
modify other FOREIGN KEY constraints
私たちは、モデル最初に作業しているとEntity Frameworkの中に変更を加える必要はありません。
関連する競合する外部キーの関係を確認するにはどうすればよいですか。
手動で削除トリガーにカスケード削除を実装することは、おそらく回避策になります。サイクリックであれば、誰が気にするのか、最終的にはデータベースにデータがなくなってしまいます。しかし、周期が深すぎると遅くなることがあります。 – AXMIM
私はトリガのパフォーマンスヒットに苦しむ必要はありません。巡回関係に寄与する外部キーを決定する必要があるので、問題を回避するために確定的に調整することができます。 –