[英]Retrieve records from Azure Table Storage is throwing Object Reference not set
I have very simple code to retrieve all items from Table Storage.我有非常简单的代码来从表存储中检索所有项目。 Below code is failing with Object Reference not set exception
下面的代码因 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; }
}
" at 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 at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at 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\source\repos\Citadel3\Citadel.Common\Utils\AzureCloudTableHelper.cs:line 166" " 在 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"
Also in my table I have 1 simple entry.同样在我的表中,我有 1 个简单的条目。
You may try the below code where I have modified the logic for retrieval of data and finally storing it into the list您可以尝试下面的代码,其中我修改了检索数据的逻辑并最终将其存储到列表中
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.