gpt4 book ai didi

c# - CloudStorageAccount,发出 TableQuery 请求

转载 作者:行者123 更新时间:2023-12-03 00:01:43 26 4
gpt4 key购买 nike

我正在尝试对我的 CloudTable 进行查询。我之前所做的是获取某个表的所有元素,但这需要很多时间。

public static List<CollectItem> GetCollectItems(string connectionString, string tableName, DateTime dateTime)
{
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(connectionString);

// Create the table client.
CloudTableClient tableClient = storageAccount.CreateCloudTableClient();

// Create the CloudTable object that represents the "people" table.
CloudTable table = tableClient.GetTableReference(tableName);

TableContinuationToken token = null;
List<CollectItem> entities = new List<CollectItem>();

do
{
var queryResult = table.ExecuteQuerySegmented(new TableQuery<CollectItem>(), token);
entities.AddRange(queryResult.Results);
token = queryResult.ContinuationToken;
} while (token != null);

entities = entities.Where(x => x.Timestamp.DateTime.Year == dateTime.Year &&
x.Timestamp.DateTime.Month == dateTime.Month &&
x.Timestamp.DateTime.Day == dateTime.Day).ToList();

return entities;
}

然后我尝试创建一些查询条件

do
{
TableQuery<CollectItem> itemStockQuery = new TableQuery<CollectItem>().Where(
TableQuery.GenerateFilterConditionForInt("Timestamp", QueryComparisons.Equal, dateTime)
);

var queryResult = table.ExecuteQuerySegmented(itemStockQuery, token);
entities.AddRange(queryResult.Results);
token = queryResult.ContinuationToken;
} while (token != null);

但现在它所做的是主持年、月、日、小时、分钟......而我只需要主持年、月和日。然后我尝试创建这个,但它说这是一个错误的请求。

TableQuery<CollectItem> itemStockQuery = new TableQuery<CollectItem>().Where(
TableQuery.GenerateFilterConditionForInt("Timestamp.DateTime.Day", QueryComparisons.Equal, dateTime.Day)
);

我的问题是如何在时间戳上创建查询请求但仅涉及年、月和日属性?

最佳答案

您必须创建一个列并在其上创建索引。您当前的日期时间列未建立索引,也不应该建立索引,这就是您的查询需要很长时间的原因。

您可以创建一个没有时间信息的日期列,并在该列上创建索引,或者您可以指定自己的格式,例如。 20200928 作为您的日期的 int 列。

关于c# - CloudStorageAccount,发出 TableQuery 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64100288/

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