論理的に削除できる「子」エンティティと 1 対多の関係があります。2 つの異なるシナリオで、子インスタンスを含む親インスタンスを読み込む必要があります。
- シナリオの編集: 「削除」されたものを含むすべての子をロードします。
- ビューのシナリオ: 「削除」されていない子のみをロードします。
ドメイン モデルでこれを実装する 2 つの異なる方法を考えることができます。私の質問は、EF コード ファーストでサポートされている方法と、それぞれの相対的な複雑さは何ですか?
- 2 つのマップされたコレクション プロパティ:
IList<Child> Children
とIList<Child> DeletedChildren
. - 1 つのマップされたコレクション プロパティ
IList<Child> Children
と、削除されていない子をマークIsActive
するためのプロパティ。次に、シナリオ 2 では、削除されていないインスタンスのみを含むようにフィルター処理されChild
た親を読み込む必要があります。Children
また、重要な場合に備えて、この状況は階層的であることにも言及したいと思います (ただし、深さは 2 レベルのみです)。つまり、子自体が別の「ソフト削除」状況の親です。