从Web服务获取下一条记录

时间:2010-07-30 14:12:16

标签: c# asp.net rest

我有一个非常恼人的问题。我正在使用一个文档列表,但它对于Web服务来说太大了,无法正确处理。基本上,这是一个简单的设置:

  1. 实体框架将包含数千个大型XML文件的表包装为文本字段,并附加其他数据。 (数据为1 GB。)
  2. DataServiceHost REST服务包装此文档实体以将数据发送到客户端应用程序。
  3. 客户端应用程序正在调用REST服务来检索文档。
  4. 我无法修改服务器/服务代码。我可以与之合作的是客户。客户端可以轻松连接到此REST / Web服务,并能够检索数据。但是当访问它存储的文档时,我遇到了问题,很可能是因为它试图将整个列表从服务器发送到客户端。 1 GB的数据太多了。 因此,该服务称为XMLData,数据是DocumentEntity。类似的东西:

    foreach (DocumentEntity Document in XMLData.Documents)
    {
        DoSomething(Document);
    }
    

    失败,因为它首先加载所有文档。然后失败,“对象引用未设置为对象的实例”。可能是因为服务器超时或者其他什么。对同一服务器上的另一个表/实体执行相同操作就可以了。 现在,通过使用XMLData.Documents.First(),我可以毫无问题地访问第一条记录。但是,如何告诉系统获取下一个系统呢?这样,我可以逐个遍历所有文档......

    而且,我无法修改服务代码。只有客户端代码。该服务已在生产中修复。

1 个答案:

答案 0 :(得分:1)

我假设XMLData.Documents是某种集合。你试过XMLData.Documents.Skip(N).Take(1);吗?