找出表C#中的所有实体

时间:2014-07-17 14:47:25

标签: c# azure entity azure-storage

我正在使用Microsoft Azure,我正在尝试找出我桌面上的所有实体。不幸的是,我不知道这些实体的细节。我通读了http://azure.microsoft.com/en-us/documentation/articles/storage-dotnet-how-to-use-tables/,看来大多数实体都知道它们的具体细节。例如,他们知道这将是一个人。

有没有办法在不知道具体细节的情况下浏览我桌子上的所有实体?

我想要这样做的原因是因为我最终想知道我的表使用了多少内存,我假设我首先需要通过每个实体来查找它使用了多少内存。这是我到目前为止的代码:

static double CalculateTableMemoryUsage()
        {
            double memory = 0;
            try
            {
                var storageAccount = Microsoft.WindowsAzure.Storage.CloudStorageAccount.Parse("UseDevelopmentStorage=true");
                CloudTableClient tableClient = storageAccount.CreateCloudTableClient();

                CloudTable table = tableClient.GetTableReference("mytable");
                table.CreateIfNotExists();
                //I've successfully created the table. Any idea how I can look 
                // through the entity(s) of that table though?


            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }


            return memory;
        }

1 个答案:

答案 0 :(得分:1)

  

有没有办法通过我的桌子的所有实体没有   了解他们的具体情况?

是。存储客户端库有一个名为DynamicTableEntity的东西,因此您可以从表中获取DynamicTableEntity的实体。顾名思义,在动态表实体的情况下,您实际上不需要知道模式。这是一个示例代码:

    static void ListAllEntities()
    {
        var storageAccount = new CloudStorageAccount(new StorageCredentials(StorageAccount, StorageAccountKey), true);
        var tableClient = storageAccount.CreateCloudTableClient();
        var table = tableClient.GetTableReference("mytable");
        List<DynamicTableEntity> entities = new List<DynamicTableEntity>();
        TableContinuationToken token = null;
        do
        {
            var result = table.ExecuteQuerySegmented(new TableQuery(), token);
            token = result.ContinuationToken;
            entities.AddRange(result.Results);
        } while (token != null);
        Console.WriteLine("Total Entities Fetched: " + entities.Count);
    }

要计算实体的大小,您可能会发现此博文有用:http://blogs.msdn.com/b/avkashchauhan/archive/2011/11/30/how-the-size-of-an-entity-is-caclulated-in-windows-azure-table-storage.aspx