如何查询Windows Azure表存储中的所有行?

我正在尝试获取我的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);