В моем проекте у меня есть таблица «Клиенты» с тремя внешними ключами к таблице «Адреса». Один для MainAddress, один для BillingAddress и один для ShippingAddress.
Я использую шаблон единицы работы и репозитория с CustomerRepository и AddressRepository.
Иногда мне нужно будет работать с адресами самостоятельно, но в большинстве случаев они будут частью объекта домена Customers.
Мой вопрос - это вопрос о передовом опыте проектирования. Должен ли уровень бизнес-логики отвечать за вызов как CustomerRepository, так и AddressRepository для добавления/обновления, или же CustomerRepository должен быть достаточно умным, чтобы добавлять/обновлять адреса, чтобы BLL нужно было вызывать только «AddCustomer» или «EditCustomer» и все таблицы адресов автоматически добавляются/обновляются?