Se uma Entidade se tornar a raiz de um Agregado, a Raiz Agregada usa o ID existente da Entidade raiz ou o AR cria seu próprio ID?

StackOverflow https://stackoverflow.com/questions/6091278

Pergunta

No Domain Driven Design (DDD), uma entidade sempre tem sua própria identidade única.

Na minha leitura sobre DDD tenho visto afirmações e exemplos que parecem misturar os conceitos de "identidade única" entre Entidades e Raízes Agregadas.Dependendo do exemplo, eles podem implicar que:

  • Eu só preciso de uma das interfaces abaixo.

ou

  • Eu preciso de ambos.

Gostaria de saber qual abordagem é "correta" no que diz respeito ao "tipo Eric Evans DDD".

Por exemplo, digamos que suas Entidades implementem esta interface e retornem um GUID quando este método for chamado:

public interface IEntity
{
   object IdThatIsUniqueForThisEntityObject { get; }
}

Você precisa do abaixo também ou não?

public interface IAggregateRoot
{
   object IdThatIsUniqueForThisAggregateRootObject { get; }
}

A Raiz Agregada precisa implementar uma interface como a acima para que possa representar seu ter ID exclusivo (IdThatIsUniqueForThisAggregateRootObject) separado e diferente do ID de sua entidade raiz (IdThatIsUniqueForThisEntityObject)?

Ou a raiz agregada deveria apenas usar a entidade raiz (IdThatIsUniqueForThisEntityObject) para representar o ID exclusivo da raiz agregada?

Foi útil?

Solução

Você só precisa do EntityId.Não há identidade raiz agregada adicional criada.Uma raiz agregada é uma agregação usada para controlar o acesso e organizar objetos como uma única unidade de trabalho de banco de dados.A agregação não confere nenhum tipo de identidade "nova" ou adicional a um objeto.

Uma entidade sempre tem sua identidade de entidade única e isso deve ser suficiente.Por definição, uma operação que recupera uma entidade que é uma raiz agregada também recupera o agregado ao fazê-lo.Não existe nenhum conceito de entidade que às vezes seja apenas a entidade autônoma e outras vezes a raiz agregada.Portanto, também não há necessidade de um conceito de "Identidade Raiz Agregada".

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top