Comment obtenir toutes les lignes dans Azure Table Storage en C# ?

Comment obtenir toutes les lignes dans Azure Table Storage en C# ?

Pour répondre à votre question, vous pourriez faire quelque chose comme ceci :

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();

Cependant, gardez à l’esprit que le service de table renvoie un maximum de 1000 entités en un seul appel. S’il y a plus de 1000 entités disponibles dans votre table, il renvoie un jeton de continuation qui peut être utilisé pour récupérer le lot d’entités suivant. La méthode ExecuteQuery gère en fait ce jeton de continuation en interne, donc si vous souhaitez annuler cette opération pour une raison quelconque, vous ne pouvez pas le faire.

Une meilleure approche serait d’utiliser la méthode ExecuteQuerySegmented et de laisser votre application gérer le jeton. Voici le code exemple pour le faire :

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);