Технически у вас должна быть отдельная команда для каждого создания.Добавление базы не очень помогает, и усложняет структуру, поэтому я бы от этого избавился.
Настоящая проблема в том, что вы думаете об этом с точки зрения вашей модели данных, а немодель вашего домена.Вы создаете команду для каждой строки таблицы, когда вам нужно создать команду для бизнес-идеи.
Например, вы пишете систему розничной торговли и создаете новый заказ для зарегистрированного пользователя, и этот заказимеет 5 позиций.Рассматривая это с точки зрения модели данных, вам нужно отправить 1 команду создания для заказа и 5 команд создания для отдельных позиций.Что должно произойти, это отправить одну команду AddNewOrderCommand и обработать ее класс User.Затем метод класса User создает новую строку базы данных заказов и все позиции.То, как вы добавляете порядок (какие строки создавать и т. Д.), Теперь инкапсулировано в методе, к которому он относится, а не в вашей командной архитектуре.
Используете ли вы Domain Driven Design для своего приложения?Если нет, вы должны рассмотреть это, потому что это очень хорошо для сложных систем, и если у вас есть сотни сущностей, шансы хороши, это квалифицируется как сложная система.На языке DDD вышеупомянутый пользователь вызывается, и Aggregate Root, а также Order и Line Item являются просто сущностями.У вас нет команд создания для сущностей, только для совокупных корней.(Обратите внимание, что иногда класс может быть как агрегированным корнем, так и нормальной сущностью в другом агрегированном корне. Почему это происходит и как с ним обращаться, это не входит в сферу охвата этого вопроса)
Просмотрите вашу модель и найдите вещиэто не имеет смысла, если они не принадлежат кому-то еще.Например, позиция из примера выше.Наличие в моей базе данных позиции, не связанной с заказом, не имеет смысла.Поэтому все позиции должны быть созданы по заказам.Иметь заказ без связанного с ним пользователя также не имеет смысла.Поэтому пользователь должен создать заказ.Однако пользователь, похоже, является вершиной пирамиды, поэтому он является совокупным корнем и ему нужна команда Create.
Если вы проанализируете свой домен, вы обнаружите, что вам это почти не нужномного команд создания, и поэтому проблема исчезает.