以前のプロジェクトでは、EF4でカスケード削除を実行しました(親レコードを削除し、子レコードも削除されます)。このプロジェクト(別の会社)では、EF4はカスケード削除を実行していません。 EF4にカスケード削除を実行させるには何が必要ですか?EF4でカスケード削除を実行するにはどうすればよいですか?
答えて
EF4のカスケード削除だけでは十分ではありません。すべての子がオブジェクトコンテキストにロードされていない場合は、データベースにカスケード削除を設定する必要があります。つまり、カスケード削除プロパティはアサーションに設定されます。モデルブラウザに移動し、アサーションを選択してプロパティを表示します。
アーキテクトによると、私たちはデータベースにカスケード削除を設定しておらず、設定もしていません。アソシエーションのプロパティを見ていきます。ありがとう! – DenaliHardtail
@スペシャルそれはあなたのパーティーです:)それはどちらの方向にでも設定できます。 OnDeleteプロパティを確認します。 – morganpdx
MorganPDXはただ1か所でそれをやっていないのが正しいです。 EDMで設定した場合、関連するすべてのデータがメモリにロードされていない可能性がある場合は、十分注意しなければなりません。 "子"がデータベースにあり、カスケードしていない場合は、dbが "親"を削除しようとすると例外が発生します。ちょうどsayin ....それはEFチームからの勧告です。 –
私は同じボートに乗っています。私は、EDM/EF4でカスケードし、データベースではまだカスケードしていません。これを試してみてください...
この関係では、親の終わりのOnDelete(1の多重度)をカスケードに設定してください。次に、あなたのコードですべての子をロードしてから変更を保存します(削除)。
var parent = context.Parents.SingleOrDefault(p => p.Id == parentId);
parent.Children.Load();
if (parent != null)
{
context.Parent.DeleteObject(parent);
context.SaveChanges();
}
あなたは実装を削除カスケードの二つの方法があります:データベース層(トリガーまたは関係)の上にそれを設定
- は、拡張メソッドを使用してみてください。現在のテーブルの削除ロジックを定義し、関連するテーブル更新のためのメソッドを呼び出すことができます。
- 1. SQL 2008のHierarchyIDデータ型でカスケード削除を実行するにはどうすればよいですか?
- 2. EFコードファーストでリンクテーブルのカスケード削除を無効にするにはどうすればよいですか?
- 3. Yiiで行を削除するにはどうすればよいですか?
- 4. cURLを実行すると、「クッキーの削除」を行うにはどうすればよいですか?
- 5. EF4 CTP5コードのカスケード削除子レコードの更新を実行します
- 6. テキストファイルの行を削除するにはどうすればよいですか?
- 7. TStringGrid行を削除するにはどうすればよいですか?
- 8. Objective-C 2.0で実行時にインスタンスメソッドを削除するにはどうすればよいですか?
- 9. DynamoDBでバッチ削除を実行するにはどうすればよいですか?
- 10. この削除クエリをpostgresで高速に実行させるにはどうすればよいですか?
- 11. JSessionIdクッキーを削除せずにFlex/BlazeDSを実行するにはどうすればよいですか?
- 12. Objectifyでカスケード削除を実行する方法は?
- 13. TextBoxに行を追加/削除しないようにするにはどうすればよいですか?
- 14. postgresqlでストアドプロシージャを削除するにはどうすればよいですか?
- 15. Androidでナビゲーションバーを削除するにはどうすればよいですか?
- 16. NSMutableURLRequestでヘッダーを削除するにはどうすればよいですか?
- 17. CKEDITORでボーダーを削除するにはどうすればよいですか?
- 18. スパンをインプレイスで削除するにはどうすればよいですか?
- 19. ホームページでウォーターマークを削除するにはどうすればよいですか?
- 20. javascriptでイベントリスナーを削除するにはどうすればよいですか?
- 21. ItemRendererでEventListenerを削除するにはどうすればよいですか?
- 22. Mercurialでリモートブックマークを削除するにはどうすればよいですか?
- 23. Railsでワイルドカードクッキーを削除するにはどうすればよいですか?
- 24. Presenterでアクティビティコンテキストを削除するにはどうすればよいですか?
- 25. OpsCenterでオブジェクトを削除するにはどうすればよいですか?
- 26. リンククリックでアウトラインを削除するにはどうすればよいですか?
- 27. XDocumentでXELEMENTを削除するにはどうすればよいですか?
- 28. Nokogiriでノードを削除するにはどうすればよいですか?
- 29. plistをプログラムで削除するにはどうすればよいですか?
- 30. コーディングウィンドウでエラーメッセージを削除するにはどうすればよいですか?
おそらく私はこの問題を完全には理解していませんが、データベースによって実行されるカスケード削除ではないのでしょうか?これはどのようにEFの問題になりますか? –