.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!
当最终用户加载 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!