Mam model domeny, który ma pojęcie redaktor i projektu.
Redaktorem posiada szereg projektów, a projekt ma nie tylko właściciela, Editor, ale także liczbę członków redakcji. Dlatego też Edytor posiada również szereg projektów „połączonych”.
Biorę podejście DDD do modelowania i to za pomocą wzoru Repository do wytrwałości. Ja jednak nie grok deseń na tyle dobrze, jeszcze do ustalenia, w jaki sposób należy to zrobić.
Pracuję na założeniu, że redaktor i projektu są potencjalnie w tym samym kruszywa, z korzeni będącego Editor. Dlatego mogę dostać edytora, a następnie wyliczyć swoje projekty, a może stamtąd wyliczyć Redakcja członków projektów.
Jednakże, jeśli wolno mi tylko do pobierania Editors z mojego repozytorium, nie robi to znaczy, że muszę załadować wszystkich projektów z repozytorium, gdy pojawia się edytor, który jest ich właścicielem? A jeśli chcę leniwy obciążenia Redakcja członkowskich, projekt musi odniesienie do repozytorium, jak również?
Ewentualnie, jeśli podzielić kruszywo i mieć repozytorium redaktor i repozytorium projektu, w jaki sposób należy obsługiwać transakcji między dwoma, na przykład gdy nowy projekt zostanie dodany do edytora? Na przykład:
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
Ja misinterpreting intencji Repository deseń?