Пейджинг с сервисом данных WCF - PullRequest
2 голосов
/ 14 декабря 2011

Мой вопрос о том, как вы обрабатываете пейджинг с помощью службы данных WCF.Я хочу его использовать: выполнить запрос (передать размер страницы и текущую страницу) и получить обратно результаты этого запроса, а также информацию о подкачке, такую ​​как общее количество страниц, номер текущей страницы и размер страницы.Эта информация подкачки используется клиентом (который является другой службой, которая преобразует результат в JSON для мобильного приложения, которое его использует) для обработки следующих / предыдущих кнопок.

Однако использование LINQ в службе данных WCF слишком ограничено, оно не поддерживает нужное мне выражение LINQ.

Я попытался создать операцию службы в данных WCF , но я могу только возвратить наборы объектов данных IQueryable, поэтому я не могу вернуть пользовательский объект, который также содержит информацию о подкачке.рядом с результатом я также получаю информацию о подкачке?

РЕДАКТИРОВАТЬ: из-за ограничений служб данных WCF я переключился на обычную службу WCF.Честно говоря, я не понимаю, почему кто-то когда-либо хотел бы использовать службу данных с этими серьезными ограничениями!

Ответы [ 3 ]

3 голосов
/ 16 декабря 2011

К сожалению, похоже, что службы данных WCF слишком ограничены, и для меня было решение переключиться на обычную службу WCF, чтобы я мог использовать полный LINQ и сам определять контракты данных.

2 голосов
/ 30 января 2012

Используйте Skip и Take для выполнения подкачки данных на стороне клиента из службы данных WCF, например:

var items = (from i in ctx.MyEntities
             select i).Skip(StartIndex).Take(PageSize)

Где StartIndex - это начальная позиция данных, которые вы хотите вернуть, а PageSize - это максимальное количество элементов, которое нужно вернуть.

2 голосов
/ 14 декабря 2011

Посмотрите на провайдера пейджинга для служб данных WCF здесь и здесь

...