簡體   English   中英

從 Azure 表存儲中檢索記錄正在拋出 Object 未設置參考

[英]Retrieve records from Azure Table Storage is throwing Object Reference not set

我有非常簡單的代碼來從表存儲中檢索所有項目。 下面的代碼因 Object 參考未設置異常而失敗

    public async Task<List<StringInternTableEntity>> GetAllRowsAsync()
    {
        var entities = new List<StringInternTableEntity>();

        try
        {
            TableContinuationToken token = null;
            do
            {
                var queryResult = await this.azureCloudTable.ExecuteQuerySegmentedAsync(new TableQuery<StringInternTableEntity>(), token);
                entities.AddRange(queryResult.Results);
                token = queryResult.ContinuationToken;
            } while (token != null);

        }
        catch (Exception ex)
        {
            return null;
        }

        return entities;
    }

public class StringInternTableEntity : TableEntity
{
    public StringInternTableEntity()
    {
    }

    public StringInternTableEntity(string runStartTimeStamp, string wordKey)
    {
        PartitionKey = runStartTimeStamp;
        RowKey = wordKey;
    }

    public int NumberValue { get; set; }
}

" 在 Microsoft.Azure.Cosmos.Table.Extensions.TableExtensionExecutor.<>c__DisplayClass24_0 2.<<ExecuteQuerySegmentedInternalAsync>b__0>d.MoveNext()\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at Microsoft.Azure.Cosmos.Table.Extensions.TableExtensionRetryPolicy.<ExecuteUnderRetryPolicy>d__2 1.MoveNext()\r\n 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n 在 System.Runtime.CompilerServices.TaskAwaiter .HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()\r\n at Citadel.Common.Utils.AzureCloudTableHelper.d__9.MoveNext() in C:\Users\kalsa\源\repos\Citadel3\Citadel.Common\Utils\AzureCloudTableHelper.cs:line 166"

在此處輸入圖像描述

同樣在我的表中,我有 1 個簡單的條目。在此處輸入圖像描述

您可以嘗試下面的代碼,其中我修改了檢索數據的邏輯並最終將其存儲到列表中

 public async Task<List<StringInternTableEntity>> GetAllRowsAsync()
        {
             var query = this.azureCloudTable.CreateQuery<StringInternTableEntity>();
                var result = new List<StringInternTableEntity>();
                var token = new TableContinuationToken();
                do
                {
                    var segment = await this.azureCloudTable.ExecuteQuerySegmentedAsync(query, token);
                    token = segment.ContinuationToken;
                    result.AddRange(segment);
                } while (token != null);
                List<StringInternTableEntity> lstClientID = new List<StringInternTableEntity>();
                foreach (StringInternTableEntity codeMapping in result)
                {
                    lstClientID.Add(codeMapping);
                }
                return lstClientID;
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM