【发布时间】:2021-01-07 17:19:06
【问题描述】:
我有这个方法:
public async Task<ProductReport<ProductPrice>> GetCurrentProductsReport()
{
var query = (DataServiceQuery<ProductPrice>)(
from p in this.entities.Products
where !p.Discontinued
orderby p.ProductName
select new ProductPrice
{
Name = p.ProductName,
Price = p.UnitPrice ?? 0,
});
var result = await Task<IEnumerable<ProductPrice>>.Factory.FromAsync(query.BeginExecute(null, null), (ar) =>
{
return query.EndExecute(ar);
});
return new ProductReport<ProductPrice>(result);
}
此方法返回不完整的产品列表。列表中的项目数受限于服务在一个请求中返回的项目数。 我需要获取所有数据。
我知道我可以使用GetContinuation() 方法,但我不能在这种情况下使用它。
也许有人知道如何解决这个问题?
【问题讨论】:
-
不清楚你想做什么。您是尝试一次加载所有数据还是异步迭代集合?
-
循环添加到列表中?
-
我想一次性加载数据。
-
为什么不能使用
GetContinuation方法? -
我可以应用GetContinuation方法,但我不明白怎么做。
标签: c# linq async-await northwind