Лучшая практика для службы WCF с большими объемами данных?

У нас есть служба WCF, которая используется для запросов к базовому хранилищу данных (SQL Server 2005 прямо сейчас). Этот сервис может возвращать довольно большие объемы данных; 60000+ экземпляров нашего класса сущностей, который содержит ~ 20 свойств. Свойства в основном представляют собой примитивы, такие как string, int, DateTime с парой, указывающей на другие объекты, которые могут, в свою очередь, указывать на другие; эти иерархии не очень глубокие, хотя.

Одно приложение, которое использует этот сервис, обычно создает запросы, которые возвращают только разумное количество объектов (от нескольких экземпляров до нескольких тысяч). Но иногда он делает запрос, который будет возвращать большую сумму, как указано выше (и он должен будет обрабатывать эти данные, поэтому сужение критериев запроса не вариант).

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

Возможно, следует иметь в виду, что лежащие в основе данные могут очень хорошо измениться при получении фрагментов. Я не совсем уверен, является ли это проблемой для нас или нет (нужно это немного изучить), но это может быть так, поэтому любой вклад в обработку этой конкретной ситуации также приветствуется.

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

Итак, вопрос вкратце: есть ли лучшая практика для такого сценария (или любого абсолютного нет-нет?)это мы должны знать)?

Ответы на вопрос(1)

Ваш ответ на вопрос