我已经读过azure表存储查询最多可以提供1000个实体,我们必须使用continuation tokens来获取下一组实体.我只是想找一个简单的方法来做到这一点.我想要做的就是获取查询应该实际返回的所有实体,而不仅仅是1000个实体.我在这里阅读了@smarx帖子
,他提到了ExecuteAll方法,TableStorageDataServiceQuery但这似乎已经弃用了,因为我无法TableStorageDataServiceQuery在存储客户端库中找到它.
我还发现了这个msdn文档,介绍了如何处理连续令牌以获取所有实体.我只是想知道这是否是获取所有实体的最佳方式,我不需要任何分页.或者我可以使用任何ExecuteAll esque方法吗?
我想知道Azure表存储中查询结果的大小是否有限制?例如,如果我查询一个分区并且它包含许多记录,是否有任何问题?
从MSDN,似乎查询服务返回的实体数量有限制:
对Table服务的查询一次最多可返回1,000个实体,并且最多可执行五秒.
但是当我写一个示例来展示这个问题时,我没有发现返回实体数量的任何限制,这是我的关键代码:
public class DataProvider
{
public static string PartitionKey
{
get { return "PartitionKey"; }
}
public static IEnumerable<CustomerEntity> MoreThanThousandData()
{
var result = new List<CustomerEntity>();
for (int i = 0; i < 1200; i++)
{
result.Add(new CustomerEntity(PartitionKey, Guid.NewGuid().ToString())
{
Name = Guid.NewGuid().ToString(),
Age = new Random().Next(10, 70)
});
}
return result;
}
}
Run Code Online (Sandbox Code Playgroud)
将1200个实体插入表中:
public class AfterOptimize
{
public void InsertDataToTable()
{
var cloudData = DataProvider.MoreThanThousandData();
Console.WriteLine("Plan to insert {0} entities to the table.", cloudData.Count()); …Run Code Online (Sandbox Code Playgroud)