【问题标题】:Advanced database query高级数据库查询
【发布时间】: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


【解决方案1】:

我需要获取所有数据。

创建一个存储过程并根据需要提取完整的总数据行/列。

【讨论】:

猜你喜欢
  • 2020-07-25
  • 1970-01-01
  • 2013-01-23
  • 1970-01-01
  • 2014-01-31
  • 1970-01-01
  • 1970-01-01
  • 2014-11-05
  • 2020-03-15
相关资源
最近更新 更多