Supponiamo di avere un personaggio e un giocatore di dominio. Personaggio di proprietà di Player.
Player
PlayerID : GUID
OwnedCharacterIDs : Guid[]
Character
CharacterID : GUID
OwnerPlayerID : GUID
Mentre la mia logica aziendale richiedeva entrambi i lati dei riferimenti.
La domanda è
Devo avere entrambi i riferimenti di direzione? Ciò farà sì che il ridondante della verità debba gestire la coerenza su entrambi i lati.
O dovrebbe scegliere solo un lato di riferimento. E usare qualche repository (consistenza finale) per fare riferimento a un altro? come questo
CharacterRefRepo
GetCharacterIDsByOwner(Guid playerID) GUID[]
or maybe
PlayerRefRepo
GetPlayerIDByCharacterID(Guid characterID) GUID
Aggiornamento:
Ho scoperto che entrambi i metodi sono consistenza finale.
Quindi non è necessario creare un altro repository di supporto solo per il vantaggio di avere un bidirezionale.