Suche nach einem Kind über aggregierte Wurzeln

Das Repository-Muster legt nahe, dass Sie nur aggregierte Roots ziehen können. Aber wie würden Sie ein einzelnes Kind nur mit seiner eindeutigen Identität (Child.ID) abrufen, wenn Sie nicht wissen, dass es ein Elternteil (root) ist?

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
}

Meine Anwendung ist zustandslos (Web). Der Einfachheit halber enthält die Anforderung nur die ID des Kindes.

Ich denke drei Ansätze:

Rufen Sie alle Eltern an und fragen Sie sie höflich, wem dieses Kind gehört.Verwenden Sie im ParentRepository eine spezielle Routine namens get GetChildByID, bei der die Abstraktion des Repositorys irgendwie fehlschlägt.Ändern Sie die Anforderung, um die übergeordnete Komponente einzuschließen, dies ist jedoch nicht erforderlich, da Sie bereits über eine eindeutige Identität verfügen.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage