Javascript 使用BreezeJS的WebAPI在我使用$skip时立即抛出一个错误

Javascript 使用BreezeJS的WebAPI在我使用$skip时立即抛出一个错误,javascript,asp.net-web-api2,breeze,Javascript,Asp.net Web Api2,Breeze,我有一个工作的WebAPI(v2),它利用了令人敬畏的BreezeJS产品。我正在尝试添加分页功能,但一旦我在URL中包含$skip作为参数,WebAPI就会生成以下错误: { $id: "1", $type: "System.Web.Http.HttpError, System.Web.Http", Message: "An error has occurred." } 调试API不会给我任何附加信息,因为它不会崩溃 我传递的参数是:?$skip=5&$top=5&$inline

我有一个工作的WebAPI(v2),它利用了令人敬畏的BreezeJS产品。我正在尝试添加分页功能,但一旦我在URL中包含$skip作为参数,WebAPI就会生成以下错误:

{
  $id: "1",
  $type: "System.Web.Http.HttpError, System.Web.Http",
  Message: "An error has occurred."
}
调试API不会给我任何附加信息,因为它不会崩溃

我传递的参数是:?$skip=5&$top=5&$inlinecount=allpages&

如果我在没有$skip参数的情况下调用它,它可以正常工作。其他“$”参数似乎工作正常,正如我所说:

?$top=3

它的工作原理与预期一致

我已经验证了我没有使用任何BreezeQueryable属性或任何东西,所以$skip应该是允许的

其他设置信息(如果有帮助):

  • SQL Server Express v2012
  • 服务器端的Breeze是v1.5.0.0
  • 实体框架v6
  • Microsoft.Data.OData是v5.6
为了利用分页,我还需要启用其他功能吗?或者有没有办法找到这个错误的真正原因?我可以提供一个工作的网址,如果要求


谢谢。

使用
跳过时需要排序:

从:


对的使用
.skip
子句时,必须添加
.orderby
子句。您将在中看到这一点。这是EF约束,不是微风约束。谢谢Jeremy和Ward-这就是解决方案。杰里米,请提交一个答案,这样你就可以先得到我的答案。(也谢谢你Ward-你在社区中总是一个巨大的帮助)Ward-Breeze服务器端是否可以在EF得到它之前监视这样的情况并抛出错误?至少那样我们可以显示一个有意义的错误。关于增强请求的想法?
// Skip the first 10 Products and return the rest
// Note that the  '.orderBy' clause is necessary to use '.skip'
// This is required by many server-side data service implementations
var query3 = EntityQuery.from('Products')
    .orderBy('ProductName')
    .skip(10);