Votre utilisation du concept d'agrégat semble incorrecte. Les objets dans un agrégat peuvent en fait contenir des références à d'autres agrégats. La règle est un objet externe ne peut pas contenir une référence à quelque chose dans un agrégat.
Sur l'objet Enregistrement, vous semblez l'avoir créé pour éviter certaines relations d'agrégation et d'agrégation. Ce n'est pas pour cela que vous créez un objet. S'il y a en fait un enregistrement dans votre domaine, créez-le et modélisez-le. Si ce n'est pas dans votre domaine, ne l'ajoutez pas juste pour traverser un chemin.
Après avoir ajouté l'enregistrement, vous indiquez qu'il ne peut pas contenir de référence au compte social car il fait partie de l'éditeur. Ce n'est pas la règle, mais plus important, comment l'enregistrement est-il soudain devenu une partie de l'agrégat de l'éditeur? En vertu seulement de l'éditeur ayant une collection d'inscription? Un agrégat est un groupe d'objets traités comme une unité pour maintenir l'état et les invariants. L'existence d'une relation par elle-même ne confère pas l'appartenance à un agrégat.
Mais regardez de l'autre côté maintenant. L'inscription est de 1 à 1 avec un compte social. Et si nous supprimons un compte social, est-il toujours logique d'avoir toujours une inscription auprès d'un éditeur? Si ce n'est pas le cas, l'enregistrement fait probablement partie de l'agrégat SocialAccount à la place. C'est pourquoi nous créons des agrégats - pour garantir que les objets et leurs relations sont toujours valides après un changement d'état. Si le changement d'état de suppression d'un compte social inclut la suppression de toutes les inscriptions associées à ce compte, nous souhaitons l'inclure dans l'agrégat pour appliquer cette règle.
Maintenant, vous avez violé la "règle d'agrégation" - vous avez une relation externe de l'éditeur vers un objet, Enregistrement, qui est une partie interne de l'agrégat Compte social.
Ces concepts sont plus que de simples règles, ils ont des raisons. Vous devez revoir ce que les agrégats signifient vraiment, comprendre ce que les règles disent réellement et ce qu'elles signifient réellement, pourquoi elles existent en premier lieu. Réévaluez ensuite vos relations et regroupez les définitions en conséquence.
C'est essentiellement la définition agrégée proposée par Evans. Personnellement je trouve que l'aspect global versus identité locale est peu confus et préfère mettre en évidence aucune référence obtenue autre qu'un transitoire et une entité contenue n'est accessible que par traversée de la racine agrégée. – Sisyphus