Procurando por uma criança através das raízes agregadas
O padrão de repositório sugere que você só pode extrair raízes agregadas. Mas como você recuperaria um único filho usando apenas a identidade uniqiue (Child.ID) se você não o conhecesse como pai (raiz)?
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
}
Meu aplicativo é stateless (web), por simplicidade, o pedido contém apenas o ID do filho.
Estou pensando em três abordagens:
Chame todos os pais e pergunte educadamente quem é o dono dessa criança.Tenha uma rotina especial no ParentRepository chamada getChildByID, que meio que falha na abstração do repositório.Modifique a solicitação para incluir o pai, mas parece desnecessário, pois você já tem uma identidade exclusiva.