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