.net 核心 web api - 如何 return table 产生块

.net core web api - How to return table results in chunks

当最终用户加载 table 时,我们会 return 向他们发送数以万计的结果。我们想要 return 所有数据,以便可以在客户端进行过滤和排序。初始加载可能会有点慢,具体取决于用户连接。

为了加快速度,我想 return 数据块,一次几千行,并在准备好时添加它们。排序和过滤需要等到完成,但至少最终用户在等待时能够看到结果。有没有一种方法可以使用异步来 return 产生块?理想情况下,它首先 return 一些摘要信息,例如总结果。

您可以对 return 数据块使用 yield return,如下所示。

 public class ValuesController : ApiController
        {
            [HttpGet]
            public IEnumerable<ReturnModel> Get()
            {
                // An example of returning large number of objects
                foreach (var i in Enumerable.Range(0, 10000))
                    yield return new ReturnModel() { SequenceNumber = i, ID = Guid.NewGuid() };
            }
        }

参考这个Link