【发布时间】:2020-06-26 04:43:58
【问题描述】:
我有非常简单的代码来从表存储中检索所有项目。下面的代码因对象引用未设置异常而失败
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_02.<<ExecuteQuerySegmentedInternalAsync>b__0>d.MoveNext()\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at Microsoft.Azure.Cosmos.Table.Extensions.TableExtensionRetryPolicy.<ExecuteUnderRetryPolicy>d__21.MoveNext()\r\n 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n 在 System .Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n 在 System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()\r\n 在 Citadel.Common.Utils.AzureCloudTableHelper.d__9.MoveNext() :\Users\kalsa\source\repos\Citadel3\Citadel.Common\Utils\AzureCloudTableHelper.cs:line 166"
另外,在我的表中,我有 1 个简单的条目。
【问题讨论】:
-
你能发布你的
StringInternTableEntity模型吗? -
@TấnNguyên - 已更新。
-
快速浏览一下,我认为
new TableQuery<StringInternTableEntity>()会导致问题,因为它一直在创建新实例。尝试将其移出循环。 -
不。同样的问题。我也尝试了下面提到的代码,同样的错误。
-
那么你可能会在
azureCloudTable附近设置断点,它可能在某个地方出错,因为下面的代码对我有用。
标签: c# azure azure-cosmosdb