Я до сих пор не смог найти ответ на свой вопрос, и я полагаю, что мне придется задать свой первый вопрос когда-нибудь.Вот так.
У меня есть уровень доступа к данным, который отвечает за взаимодействие с различными элементами хранения данных и возвращает POCO или наборы POCO при запросе вещей.
У меня есть бизнес-уровень, который находится над этим и отвечает за реализацию бизнес-правил для объектов, возвращаемых из уровня доступа к данным.
Например, у меня есть таблица SQL собак,Мой слой доступа к данным может вернуть этот список собак как коллекцию объектов Dog.Тогда мой бизнес-уровень мог бы выполнять такие вещи, как фильтрация собак младше определенного возраста, или любая другая фильтрация или трансформация, которые должны были произойти на основе бизнес-правил.
Мой вопрос таков.Каков наилучший способ обработки объектов фильтрации на основе связанных записей?Допустим, я хочу всех людей, у которых есть кошки.Прямо сейчас мой слой доступа к данным может вернуть всех кошек и всех людей, но не выполняет никакой фильтрации для меня.
Я могу реализовать фильтрацию с помощью другого метода доступа к данным (например, DAO.GetCatPeople ()), но это может осложниться, если у меня есть множество связанных свойств или отношений для обработки
Я могувернуть все с обеих сторон и выполнить сопоставление всех себя на бизнес-уровне, что выглядит как большая дополнительная работа и не использует полностью сервер sql.
Я могу написать интерфейс фильтрации данных и, если у меня есть доступ к даннымизменения слоя, этот слой тоже должен был бы измениться.
Есть ли здесь какие-нибудь известные передовые практики, из которых я мог бы извлечь пользу?