Я занимаюсь разработкой приложения, которое включает службу WCF и ее клиент ASP.NET MVC. Веб-сайт ASP.NET MVC должен отображать сетку объектов - скажем, продуктов. Эти продукты хранятся в базе данных, которая доступна через службу WCF. Поэтому где-то внутри контроллера MVC я вызываю метод службы WCF, который возвращает мне массив продуктов, которые мне нужно отобразить.
Так в чем же мой вопрос? Я хочу реализовать функциональность пейджера для своей сетки продуктов, потому что, возможно, будет много продуктов. Есть несколько способов сделать это:
- Мой контроллер может получить весь список продуктов и просто выполнять подкачку в памяти
- WCF может выбрать все продукты и сохранить их где-нибудь в своем кэше, а затем передать контроллеру только часть из них в соответствии с запрошенным номером страницы.
- WCF может выбирать только часть продуктов из базы данных в соответствии с запрошенным номером страницы.
- WCF может вернуть IQueryable контроллеру, а затем контроллер выберет все, что захочет, когда захочет.
Насколько я понимаю (и поправьте меня, если это не так), первый вариант бесполезен, поэтому я должен выбирать между остальными.
Второй вариант тратит впустую память моего сервера.
Третий вариант в порядке, но кажется немного уродливым реализовать пейджинг на стороне WCF.
И четвертый вариант звучит странно. Я фактически передаю какой-то запрос клиенту, а затем он сам запрашивает мою базу данных через службу WCF. Я не могу понять, как правильно это реализовать.
Не могли бы вы помочь мне выбрать правильный способ реализации этого?