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