2

ここでこの質問に対する答えを見つけようとしています。何人かが同じようなことを尋ねているようですが、私には答えがありません。一連の子エンティティ (1 対多の関係) を持つ EF エンティティがあります。「親」エンティティを削除し、すべての子エンティティを同時に削除できるようにしたい。

一部の人々は、EFモデルとデータベース(私の場合はSql Server)の両方で「Cascade Delete」を設定する必要があると述べています。問題は:

  1. これを行う方法がまったくわかりません(知っておくべき回答に暗示されているようですが、申し訳ありません...)
  2. 以前に同様の問題に遭遇したことがあり、このカスケード削除を設定するよりも簡単な答えを見つけた気がします。私が間違っているかもしれませんが、それが唯一の方法かもしれませんが、もっと簡単な解決策があれば知りたいです。

どちらの場合でも、これを機能させる方法の明確な例をいただければ幸いです。

4

2 に答える 2

5

SQL Managment Studio でデータベースに移動し、外部キーがあるはずのテーブルを見つけます。他のテーブルを指すテーブルに外部キーを追加します。外部キーの設定方法を知っていると思います。ダイアログ ウィンドウの下部にある外部キーの設定に、削除プロパティが表示されます。カスケードに設定します。これにより、親行が削除されるたびに依存行が削除されます。次に、Visual Studio でデータ モデルを更新します。これですべてがセットアップされます。

于 2011-02-22T22:12:35.050 に答える
0

MSDNの関連ドキュメントを次に示します。ただし、例にはエラーがあるように見えることに注意してください。この構成を使用すると、EDMX デザイナーから次のエラーを受け取りました。

多重度 '*' の端には操作を指定できません。

OnDelete プロパティを Cascade に設定すると、反対側で削除がトリガーされます。

たとえば、顧客と一緒に顧客の注文を削除したい顧客と注文が関係している場合、Customer ロールの OnDelete プロパティを Cascade に設定する必要があります。

ObjectContext に読み込まれたオブジェクトのみがカスケード削除の影響を受けることに注意してください。データベースに設定したカスケード削除に依存して、他のレコードを処理します。

于 2011-04-14T00:08:05.620 に答える