Если ваш тип результата и ваш тип клиента совпадают (IOW, ваш sproc возвращает Select * from Client, и вы не изменили сущность Client в DBML с момента ее добавления), вы можете изменить сохраненный процесс для автоматического возврата IQueryable из Клиент вместо IQueryable для SelectClientsBySearchResult (см. Инструкции ниже). Тогда никакое преобразование не требуется.
Если они разные, есть несколько разных подходов. Вы можете изменить частичный класс для ваших сущностей, чтобы добавить к ним методы преобразования, или вы можете использовать методы расширения. Оба этих подхода позволяют избежать перезаписи при регенерации кода за DBML.
Чтобы изменить тип возвращаемого хранимого процесса:
Дизайнер DBML создал тип SelectClientsBySearchResult для вашего сохраненного процесса, когда вы добавили сохраненный процесс в DBML. Это поведение по умолчанию, если вы перетаскиваете proc из проводника сервера на панель процедур. Вместо этого перетащите сохраненный процесс из обозревателя серверов и поместите его в таблицу Client. Теперь его типом возврата является коллекция Client.
Я полагаю, что вы также можете изменить тип возвращаемого значения после факта (как сейчас), но я не установил его прямо сейчас и не могу провести вас через него.