2012-03-23 6 views
0

EDMデザイナでEF4を使用しています。私は2つのテーブル:ユーザーとリンクを持っています。それらの間の関連付けは、ユーザーが複数の(*)リンクを投稿でき、1つのユーザーが(0..1)1人のユーザー(リンクを投稿したユーザー)またはnone(null)を持つことができるということです。Is Null On Is EF 4で使用可能な削除機能

私の目標は、ユーザーを削除すると、すべてのリンクのFKがnullに設定されることです。問題は、EF4がアクションのみをサポートしていると思われることです:カスケードとなし。

EF4でOn Delete Set Nullルールを実装するにはどうすればよいですか?

+0

通常、実際のレコードを削除するのではなく、IsDeleted列をユーザーテーブルに追加し、この値をTrueに設定します。これにより、データの整合性が維持され、時間の経過とともに情報が失われないことが保証され、うまくいけば問題が解決されます。 –

+0

私はIsDeletedアプローチが好きです。しかし、後で同じユーザーを追加するにはどうしたらいいですか?どこにでもこのIsDeletedチェックを入れなければならないようです。 –

答えて

2

EFは、読み込まれたエンティティを操作するときに、このルールをデフォルトで使用します。読み込まれたユーザーを削除済みとしてマークすると、読み込まれたリンクはすべてこのユーザーへの参照を失います。ロードされていないエンティティの場合は、このルールをデータベースに設定する必要があります。

+0

ありがとう、それは知っています。 – MoonLight