Я работаю над своим первым проектом DDD, и я думаю, что понимаю основные роли объектов, объектов доступа к данным и их отношений. У меня есть базовая реализация проверки, которая хранит каждое правило проверки с его ассоциированным объектом. Это отлично подходит для правил, которые применяются только к текущему объекту, но разваливается, когда нужны другие данные. Например, если у меня есть ограничение на то, что имя пользователя должно быть уникальным, я бы хотел, чтобы вызов IsValid() возвращал false, когда есть существующий пользователь с текущим именем.
Однако я не нахожу никакого чистого способа сохранить это правило проверки для самой сущности. Я хотел бы иметь функцию IsNameUnique для сущности, но большинство решений для этого потребовали бы, чтобы я вводил объект доступа к пользовательским данным. Должна ли эта логика находиться во внешней службе? Если да, то как я все еще сохраняю логику с самой сущностью? Или это то, что должно быть вне пользовательского объекта?
Спасибо!