验证 Azure Table 插入操作的好方法是什么?
What's a good method for verifying an Azure Table Insert operation?
到目前为止,我一直依赖 TableResult.HttpStatusCode = 204
作为 Insert
操作的积极结果,根据:
TableResult.HttpStatusCode Property
如果实体已经存在,我得到 200
,如果插入操作成功,我得到 204
。我也试过在 TableOperation
上使用 echoContent
参数:
echoContent
在我的情况下没有 return 任何东西,所以我不确定我是否做错了什么或者我是否在追逐独角兽。我不确定 echoContent
是否只是发回你发送给它的数据,或者它是否真的回显了书面实体。
有没有更好的验证方式?我是不是太依赖 Azure Table 存储的 REST api 了,还是我们只有这些?
我实际上是先进行读取操作,然后评估结果以查看我的代码中是否存在重复项。未先检查就执行的插入操作确实 return 一个 409
,但是这是在调试由在现有实体之上插入导致的异常后发现的。
我的第一段代码使用频率要低得多 activity,更重要的是我检查重复的实体,这就是为什么我先读取,然后检查,然后插入的原因。
我后面的代码来自 API,它接收了大量数据,我不想在插入之前通过查找和比较来增加事务的负担。
为了解决这个问题,我设置了一个 try/catch 块来监视 409
的特定异常类型:
catch (Microsoft.WindowsAzure.Storage.StorageException e) when (e.RequestInformation.HttpStatusCode == 409)
{
TableResult tableResult = new TableResult();
tableResult.HttpStatusCode = e.RequestInformation.HttpStatusCode;
tableResult.Result = e.Message;
return tableResult;
}
由于我的方法是 returning TableResult
类型,我必须格式化一个新的 tableResult
以发送回调用者。在调用者上使用 switch 语句我能够处理各种情况 (success/exception)。
到目前为止,我一直依赖 TableResult.HttpStatusCode = 204
作为 Insert
操作的积极结果,根据:
TableResult.HttpStatusCode Property
如果实体已经存在,我得到 200
,如果插入操作成功,我得到 204
。我也试过在 TableOperation
上使用 echoContent
参数:
echoContent
在我的情况下没有 return 任何东西,所以我不确定我是否做错了什么或者我是否在追逐独角兽。我不确定 echoContent
是否只是发回你发送给它的数据,或者它是否真的回显了书面实体。
有没有更好的验证方式?我是不是太依赖 Azure Table 存储的 REST api 了,还是我们只有这些?
我实际上是先进行读取操作,然后评估结果以查看我的代码中是否存在重复项。未先检查就执行的插入操作确实 return 一个 409
,但是这是在调试由在现有实体之上插入导致的异常后发现的。
我的第一段代码使用频率要低得多 activity,更重要的是我检查重复的实体,这就是为什么我先读取,然后检查,然后插入的原因。
我后面的代码来自 API,它接收了大量数据,我不想在插入之前通过查找和比较来增加事务的负担。
为了解决这个问题,我设置了一个 try/catch 块来监视 409
的特定异常类型:
catch (Microsoft.WindowsAzure.Storage.StorageException e) when (e.RequestInformation.HttpStatusCode == 409)
{
TableResult tableResult = new TableResult();
tableResult.HttpStatusCode = e.RequestInformation.HttpStatusCode;
tableResult.Result = e.Message;
return tableResult;
}
由于我的方法是 returning TableResult
类型,我必须格式化一个新的 tableResult
以发送回调用者。在调用者上使用 switch 语句我能够处理各种情况 (success/exception)。