EF5 を使用するアプリケーションでレコードをソフト削除するコードがいくつかあります。私の「削除可能な」クラスは、ISoftDelete を実装しています。これは、単に実装者が bool の Deleted プロパティを持っている必要があることを示しています。
ユーザーが削除をクリックすると、DbContext..Remove(entity) が呼び出されます
これにより、親エンティティにバインドされているすべてのプロパティが null にクリアされます (親が削除可能なエンティティのコレクションを持っている場合!)。
私の DbContext では、SaveChanges メソッドをオーバーライドして削除されたエンティティを見つけます。それらが ISoftDelete インターフェイスを実装している場合は、状態を削除ではなく変更済みに設定し、その Deleted プロパティを true に設定して削除済みとしてマークします。私の問題は、親への参照を保持するプロパティが null であることです。
調査は ApplyOriginalValues を指しているようですが、私の値はパブリック プロパティではなく、コレクション内の子であることによって作成されているため、実装に苦労しています。手伝ってくれますか?