Добавить связанный элемент к существующему объекту, используя DDD - PullRequest
0 голосов
/ 05 сентября 2018

Допустим, у меня есть 2 объекта: RequestEntity и TestEntity. Оба являются совокупными корнями. Тест не может жить без родительского запроса.

Я хочу добавить этот тест в запрос. У меня есть 2 возможных сценария в сценарии использования (интерактив / проверьте чистую архитектуру для этого):

Добавить тест к запросу как операцию:

public void UseTest(string testdetail1, string testdetail2)
{
   var test = new TestEntity(testdetail1, testdetail2)   
   tests.Add(test);
}

Создать тестовую сущность с идентификатором запроса в конструкторе

public TestEntity(int requestId, string testdetail1, string testdetail2)
{
}

И, наконец, сохраните объект запроса и теста, используя репозиторий запроса и / или теста.

Первый сценарий нацелен больше на стиль Ubiquitous Language / DDD. У многих пользователей могут быть проблемы с параллелизмом / производительностью. И чтобы сохранить тест, я должен использовать 2 репозитория (request- и testrepository, из-за 2 агрегированных корней) в одном вызове службы домена.

Второй сценарий лучше в отношении параллелизма / производительности, но он менее обнаружим, и хранение объекта запроса и теста должно управляться сценарием использования с использованием сохранения в хранилище запросов и сохранения в хранилище тестов.

Мой вопрос: является ли второй сценарий хорошим стилем / способом работы DDD?

...