Я не совсем уверен в вопросе, но вот мое понимание вопроса ...
1) Запись клиента будет содержать определенную информацию во всех случаях, и вы можете вернуть клиентазапись за один вызов
2) Если запись клиента имеет IsHeadOffice == true, вы можете дополнительно выбрать загрузку списка записей клиента IEnumerable, которые «принадлежат» «клиенту главного офиса»
На самом деле я не вижу проблемы в совершении двух вызовов: одного - для метода «получить клиента», а другого - для метода «получить клиентов для пользователя из центрального офиса».
Вы можете добавить их на свой уровень обслуживанияи, если хотите, верните весь клиент со всеми связанными клиентами за один вызов.
Если вы попытаетесь связать свою службу с вашим пользовательским интерфейсом, вы напишите излишне сложные методы для возврата «полных» наборов данных.Если вы вызываете 50 различных методов из пользовательского интерфейса, это может быть неэффективно, и вам может потребоваться агрегировать их дальше по стеку.