Почему мы не можем использовать SetEntitySetPageSize и MaxResultsPerCollection вместе? - PullRequest
0 голосов
/ 16 апреля 2011

Я разрабатываю Службу данных WCF, и я хотел использовать SetEntitySetPageSize (разрешает подкачку сервера) и MaxResultsPerCollection (устанавливает максимальное количество возвращаемых строк) вместе.

К сожалению, вы не можете.Мой вопрос почему?Возможно, я что-то упустил.Я подумал, что это будет / может быть хорошей идеей в зависимости от чьей-то ситуации?Это потому, что мы хотим, чтобы фид OData мог возвращать все?

Что происходит, когда вы хотите использовать его с приложением Silverlight или веб-приложением.Если пользователь не ограничивает результаты самостоятельно, он может получить большой набор результатов ... Возможно, в этом и есть смысл.Конечный пользователь остерегается ...?

1 Ответ

3 голосов
/ 16 апреля 2011

Оба эти параметра являются функцией безопасности / производительности на сервере.MaxResultsPerCollection заставляет сервер отклонять запрос, если ограничение превышено.SetEntitySetPageSize позволяет серверу возвращать только небольшую часть данных, предоставляя клиенту возможность запросить больше, если это необходимо.За исключением действительно злонамеренных клиентов, которые бомбардируют ваш сервер множеством запросов «получить меня на следующей странице», SetEntitySetPageSize в значительной степени превосходит MaxResultsPerCollection.И есть более простые способы заставить ваш сервер страдать, если он принимает неограниченное количество запросов для клиента.Что касается вашего последнего вопроса, я думаю, что на самом деле это хорошо, что дело за клиентом.Некоторые клиенты могут иметь возможность / хотят обрабатывать все данные, независимо от их размера.Те, кто не может остановиться в любое время.Возможно, если бы вы могли описать сценарий, в котором, как вы думаете, вам понадобятся оба ...

...