1

我与可以软删除的“子”实体建立了一对多的关系。我必须在两种不同的情况下加载包含子实例的父实例:

  1. 编辑场景:加载所有孩子,包括那些已经“删除”的孩子。
  2. 查看场景:只加载没有被“删除”的孩子。

我可以想到在域模型中实现这一点的两种不同方式,我的问题是:EF 代码优先支持哪些方式,每种方式的相对复杂性是多少?

  1. 两个映射集合属性:IList<Child> ChildrenIList<Child> DeletedChildren.
  2. 一个映射集合属性IList<Child> Children和一个IsActive属性 onChild用于标记尚未删除的子项。然后对于场景 2,我需要加载父级,以便Children过滤为仅包含尚未删除的实例。

我还想提一下,以防万一,这种情况是分层的(但只有两层深)。也就是说,孩子本身就是另一个“软删除”情况的父母。

4

0 回答 0