我正在尝试获取我的azure色表内所有实体的列表。
任何想法如何我会去写这个查询?
我正在使用C#顺便说一句。 谢谢。
要回答你的问题,你可以做如下的事情:
var acc = new CloudStorageAccount( new StorageCredentials("account name", "account key"), false); var tableClient = acc.CreateCloudTableClient(); var table = tableClient.GetTableReference("table name"); var entities = table.ExecuteQuery(new TableQuery<MyEntity>()).ToList();
但请记住,表服务在一次调用中最多返回1000个实体。 如果表中有超过1000个实体可用,则会返回一个continuation token
,用于获取下一组实体。 ExecuteQuery
方法实际上在内部处理这个连续标记,因此如果你想因任何原因取消这个操作,你不能这样做。
更好的方法是使用ExecuteQuerySegmented
方法,让你的应用程序处理令牌。 以下是示例代码:
var acc = new CloudStorageAccount( new StorageCredentials("account name", "account key"), false); var tableClient = acc.CreateCloudTableClient(); var table = tableClient.GetTableReference("table name"); TableContinuationToken token = null; var entities = new List<MyEntity>(); do { var queryResult = table.ExecuteQuerySegmented(new TableQuery<MyEntity>(), token); entities.AddRange(queryResult.Results); token = queryResult.ContinuationToken; } while (token != null);