WCF数据服务查询执行

时间:2014-02-07 03:50:23

标签: wcf-data-services

如果我有疑问 - http:///Northwind.svc/Orders?filter = Freight gt 30

我相信,WCF数据服务查询已执行 -

  1. 枚举实体集时,例如在foreach期间。
  2. 当查询分配给List集合时,或者调用First或single。
  3. 显式调用Execute或BeginExecute方法时。
  4. 我的质询 - 1.如果我浏览上面的网址或

    1. 如果我使用jQuery调用上面的url并枚举结果。
    2. 我的查询在什么时候执行?

      我相信我的问题#2它将在每次枚举结果时执行。如果是这样,我如何避免这种情况,以便在一次网络通话中获得所有结果。

      由于

1 个答案:

答案 0 :(得分:1)

WCF数据服务的客户端使用受限制的LINQ提供程序来访问查询结果。与其他LINQ提供程序类似,它使用所谓的延迟查询执行,即它不执行查询(在OData的情况下是HTTP调用),直到它需要结果。因此,很容易弄清楚何时发生HTTP调用。当然,它发生在调用First(),Single()等上,对结果枚举进行聚合调用,如Count()。

当谈到JavaScript和jQuery时,它与WCF数据服务的客户端无关。我不是UI开发人员,但AFAIK jQuery有自己的HTTP帮助程序方法,因此您必须检查它们的实现方式。但一般来说,你有一个OData请求,你无法真正分割它的执行:一旦你将它发送到OData feed,你将得到所有结果。如果需要限制提取的结果数,可以使用$ count子句扩展查询URI。