首页 > 解决方案 > 如何在 .net C# 应用程序中使用 Reporting API 响应中返回的 @odata.nextlink 参数

问题描述

我正在从 odata 服务中检索数据。响应包含一个用于加载更多数据的链接,即 odata.nextLink,我需要检索它以加载更多数据(odata.nextLink)。如何使用 C# 代码执行此操作?服务器的响应是这样的:

{
  "odata.metadata":"http://localhost:60497/odata/$metadata#tables","value":[
    {"id":001,"name":"abc" }

      .
      .
  ],
"odata.nextLink":"http://localhost:60497/odata/tables?$skip=10"
}

标签: c#.netodata

解决方案


odata.nextLink 元素的存在用于指示有更多可用结果。如果您只是想获取所有结果,那么您将继续从每个连续的 nextLink URI 中获取其他结果,直到您收到不包含 nextLink 元素的响应。

在最简单的情况下,您可以简单地使用 while 循环,但是在大多数情况下,如果查询返回大量结果,您可能希望检索一些结果,然后为用户提供请求更多行的方法。

在 C# 中,您可能正在使用 Microsoft 的OData 客户端库,它允许您对 OData 服务执行 LINQ 查询。

Microsoft 的文档在https://docs.microsoft.com/en-gb/odata/client/pagination有一个全面的示例


推荐阅读