存儲庫模式表明您只能拉取聚合根。但是,如果您不知道它是父級(root),您將如何僅使用唯一身份(Child.ID)檢索單個孩子?在集合根中搜索兒童
class Parent
{
public int ID { get; set; }
IEnumerable<Child> Children { get; private set; }
}
class Child
{
public int ID { get; private set; }
public virtual Parent Parent { get; private set; } // Navigational model
}
我的應用程序是無狀態的(網絡),爲簡單起見,請求只包含孩子的ID。
我想到了三種方法:
- 呼叫所有的家長則問他們禮貌誰擁有這個孩子。
- 在ParentRepository中有一個名爲get GetChildByID的特殊例程,它會使存儲庫的抽象化失敗。
- 修改請求以包含父項,但似乎不必要,因爲您已具有唯一標識。
在「ChildRepository」類中創建'GetChildByID(..)'方法? –
如果你沒有父母可以識別他們,那麼孩子應該是一個總分。 – Hippoom
@Hippoom我對Aggregate Root的瞭解是有限的,你是說只要一個實體具有唯一的身份,那麼他們可以被視爲根?我更新了代碼示例。 – Yorro