验证 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 参数:

TableOperation.Insert Method

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)。