gpt4 book ai didi

c# - 需要使用 ExecuteQuerySegmentedAsync 进行 Azure 表查询的示例

转载 作者:行者123 更新时间:2023-12-02 00:28:48 26 4
gpt4 key购买 nike

我只是想获取 Azure 表中与某个字段名称匹配的所有实体,但似乎找不到任何我可以学习的最新示例。

最终我想将 HTML 表格中的结果显示回我的 View ,所以我想 List<ActivityModel>会有道理的。或者是 IEnumerable因为我不需要更改任何实体(只需阅读)。不管怎样,我都在努力理解基本概念。

public async Task<List<ActivityModel>> GetActivitiesAsync(string domainName)
{
CloudTable cloudTable = TableConnection("NodeEvents");
TableQuery<ActivityModel> query = new TableQuery<ActivityModel>().Where(
TableQuery.GenerateFilterCondition("DomainName", QueryComparisons.Equal, domainName)
);

//tried many examples of continuation tokens/etc
}

我遇到的问题是所有最新的 SDK 都使用带有 ContinuationToken 的异步调用,而且我似乎找不到任何好的示例。这看起来应该是一个简单的任务。如有任何帮助,我们将不胜感激。

尝试跟随here但示例引用了不再可用的方法和操作。

最佳答案

这对我有用。我无法找到任何显示最近使用 Azure Tables SDK 的信息。希望这对其他人有用。这里还有更多需要注意的事情:

  1. 该表有数千个实体,而我总共只需要大约 500 个实体。虽然下面的代码可以工作,但可能需要对 .Take(int) 的使用进行一些工作。据我了解,“Take”方法仅限制每个查询返回的记录数。由于我可能需要处理一个延续 token ,因此将其设置为 5 之类的值只会使每个请求只需要 5 个实体,直到列表末尾。

  2. 我添加了一个索引计数器,以防我们获得超过 500 条记录,但我的测试显示有 2000 多条记录,而没有它则为 5000 多条记录,所以这可能是调用异步性质的结果?

    public async Task<List<ActivityModel>> GetActivitiesAsync(string domainName)
    {
    List<ActivityModel> activities = new List<ActivityModel>();
    CloudTable cloudTable = TableConnection("NodeEvents");
    string filter = TableQuery.GenerateFilterCondition("DomainName", QueryComparisons.Equal, domainName);
    TableContinuationToken continuationToken = null;

    do
    {
    var result = await cloudTable.ExecuteQuerySegmentedAsync(new TableQuery<ActivityModel>().Where(filter), continuationToken);
    continuationToken = result.ContinuationToken;
    int index = 0;
    if (result.Results != null)
    {
    foreach (ActivityModel entity in result.Results)
    {
    activities.Add(entity);
    index++;
    if (index == 500)
    break;
    }
    }

    } while (continuationToken != null);

    return activities;
    }

关于c# - 需要使用 ExecuteQuerySegmentedAsync 进行 Azure 表查询的示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52712952/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com