为什么我们不能一起使用SetEntitySetPageSize和MaxResultsPerCollection?

问题描述:

我正在开发一个WCF数据服务,我想使用SetEntitySetPageSize(允许服务器分页)和MaxResultsPerCollection(设置返回的最大行数)在一起。为什么我们不能一起使用SetEntitySetPageSize和MaxResultsPerCollection?

不幸的是,你不能。我的问题是为什么?也许我错过了一些东西。我想这可能是一个好主意,取决于某人的情况?是否因为我们希望OData Feed能够返回所有内容?

当您想要使用Silverlight应用程序或Web应用程序时,会发生什么情况。如果用户不会自己限制结果,他们可能会遇到大的结果集....也许这就是关键所在。最终用户要小心......?

这两个设置都是服务器上的安全/性能功能。如果限制超时,则MaxResultsPerCollection会导致服务器使请求失败。 SetEntitySetPageSize允许服务器仅返回一小部分数据,并留给客户端以便在需要时提供更多信息。 除了真正恶意的客户,他们会用很多“给我下一页”的请求来轰炸你的服务器,SetEntitySetPageSize比MaxResultsPerCollection好得多。如果服务器接受无限次数的客户端请求,则有更简单的方法可以让服务器受到影响。 至于你的最后一个问题,我认为这实际上是一件好事,它取决于客户。有些客户可能能够/想要处理所有数据,无论多大。那些不能随时停下来的人。 也许如果你能描述你认为你会同时需要的场景......

+0

真棒回答@ vitek-karas-msft。这绝对有助于我理解为什么现在。谢谢! – klabranche 2011-04-15 22:41:25

+0

@ vitek-karas-msft - 顺便说一句,我无法想到两种方案都会产生很大的意义。 :-) – klabranche 2011-04-15 22:49:35