【发布时间】:2013-09-04 03:58:58
【问题描述】:
如何在 Azure 表存储上设置多个筛选器?
这是我尝试过的:
string partitionFilter = TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, "partition1");
string date1 = TableQuery.GenerateFilterCondition("Date", QueryComparisons.GreaterThanOrEqual, "31-8-2013T14:15:14Z");
string date2 = TableQuery.GenerateFilterCondition("Date", QueryComparisons.LessThanOrEqual, "31-8-2013T14:15:14Z");
string finalFilter = TableQuery.CombineFilters(partitionFilter, TableOperators.And, date1);
这不起作用,因为TableQuery.CombineFilters() 只需要 3 个参数。而且我需要一个额外的参数用于第二个日期。
我的第二次尝试:
string filter = "PartitionKey eq 'partition1' and Date ge datetime'31-8-2013T14:15:14Z' and Date lt datetime'31-8-2013T14:19:10Z'";
TableQuery<CustomEntity> query = new TableQuery<CustomEntity>().Where(filter).Take(5);
这将返回 400 bad request。但是,如果我删除“日期时间”,它会运行但不返回任何结果,而它应该返回几 100 条记录。
根据来自 msdn 的this doc,这就是日期时间的格式。
我的结果应该是两个日期之间的所有记录。
我怎样才能做到这一点?
【问题讨论】:
标签: c# azure azure-table-storage