Eu tenho uma entidade chamada Mestre que é composta por um número de entidades Escravo.
Só pode haver um mestre no meu banco de dados e desejo consultar repositórios para obter o escravo para um determinado ID.
Inicialmente, criei um SlaveRepository e o perguntei por ID. Isso parece bom e funciona e outros desenvolvedores podem usar meu repositório.
Depois pensei em raízes agregadas, criei um MasterRepository, retornei o Master e fiz um loop para obter a entidade Slave necessária. O problema que senti aqui é que, quando eu expô-lo a outros desenvolvedores, eles precisam fazer o mesmo; então, acabei tendo um método no MasterRepository chamado GetSlaveByID (id da string) e então pude obter o Slave diretamente (oculta a funcionalidade do loop )
Agora, meu repositório deve retornar um Escravo, mesmo que seja chamado de MasterRepository? E mais importante, qual é o caminho certo a seguir?
Eu estou nos estágios iniciais de tentar aplicar DDD e TDD, então provavelmente há muitas coisas em que preciso pensar antes de decidir qual é a maneira correta, eu acho.