我想按属性值查询表。假设我有下表
我想创建一个查询,其中给出PartitionKey = section3 FirstName = value3 Timestamp : last 12小时的所有记录
到目前为止,我有以下代码:
// Retrieve the storage account from the connection string.
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
CloudConfigurationManager.GetSetting("StorageConnectionString"));
// Create the table client.
CloudTableClient tableClient = storageAccount.CreateCloudTableClient();
// Create the CloudTable object that represents the "asometrichub" table.
CloudTable table = tableClient.GetTableReference("customer");
TableQuery rangeQuery = new TableQuery().Where(
TableQuery.CombineFilters(
TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, "section3"),
TableOperators.And,
TableQuery.GenerateFilterConditionForDate("Timestamp", QueryComparisons.GreaterThanOrEqual, DateTime.UtcNow.AddHours(-12))));
不确定如何在FirstName=value3上过滤。谢谢!
发布于 2017-12-09 10:25:46
TableQuery.CombineFilters()
可以以嵌套的方式调用:
// Retrieve the storage account from the connection string.
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
CloudConfigurationManager.GetSetting("StorageConnectionString"));
// Create the table client.
CloudTableClient tableClient = storageAccount.CreateCloudTableClient();
// Create the CloudTable object that represents the "asometrichub" table.
CloudTable table = tableClient.GetTableReference("customer");
string combinedFilter = TableQuery.CombineFilters(
TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, "section3"),
TableOperators.And,
TableQuery.GenerateFilterConditionForDate("Timestamp", QueryComparisons.GreaterThanOrEqual, DateTime.UtcNow.AddHours(-12)));
combinedFilter = TableQuery.CombineFilters(
combinedFilter,
TableOperators.And,
TableQuery.GenerateFilterCondition("FirstName", QueryComparisons.Equal, "value3"));
TableQuery rangeQuery = new TableQuery().Where(combinedFilter);
https://stackoverflow.com/questions/47717604
复制相似问题