Допустим, у меня есть 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?