Ответ 1
Чтобы ответить на ваш вопрос, вы можете сделать что-то вроде следующего:
var acc = new CloudStorageAccount(
new StorageCredentials("account name", "account key"), true);
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"), true);
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);