Ho un modello di dominio che ha il concetto di un editor e un progetto.
Un Editor possiede una serie di progetti, e un progetto non ha solo un proprietario Editor, ma anche un numero di membri Editor. Pertanto, un Editor ha anche un certo numero di progetti uniti.
Sto prendendo un approccio DDD per modellare questo e utilizzando il modello Repository per la persistenza. Tuttavia, non mi Grok il modello abbastanza bene ancora determinare come devo fare questo.
Sto lavorando sul presupposto che Editor e Project sono potenzialmente nello stesso aggregato, con la radice essendo Editor. Posso quindi ottenere un Editor e quindi enumerare i suoi progetti, e da lì poteva enumerare editori membri dei progetti.
Tuttavia, se mi è permesso solo di recuperare i redattori dal mio repository, questo non significa che devo caricare tutti i Progetti dal repository quando ricevo l'editor che li possiede? E se voglio carico pigri Editors membri, il progetto ha bisogno di un riferimento al repository come bene?
In alternativa, se dividere l'aggregato ed avere un repository Editor e un repository di progetto, come devo gestire una transazione tra le due, come ad esempio quando si aggiunge un nuovo progetto per un Editor? Per esempio:
Editor e = new Editor(Editor Name);
editorRepository.Add(e);
Project p = e.CreateProject(Project Name);
projectRepository.Add(p); // These two lines
editorRepository.Save(e); // should be atomic
Sto interpretando male l'intento del Pattern Repository?